Gestire un file XML con un DataGrid
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Data"%>
<html>
<script runat="server">
private DataSet CreateDataSource()
{
XmlDataDocument mydata = new XmlDataDocument();
mydata.DataSet.ReadXml(Server.MapPath("magazzino.xml"));
return mydata.DataSet;
}
public void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
}
}
public void doCancel(Object sender, DataGridCommandEventArgs e)
{
mygrid.EditItemIndex = -1;
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
}
public void doEdit (Object sender, DataGridCommandEventArgs e)
{
mygrid.EditItemIndex = e.Item.ItemIndex;
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
}
public void doUpdate(Object sender, DataGridCommandEventArgs e)
{
string nome = ((TextBox)e.Item.Cells[0].Controls[1]).Text;
string quantita = ((TextBox)e.Item.Cells[1].Controls[1]).Text;
mygrid.EditItemIndex = -1;
DataSet ds = CreateDataSource();
DataRow row = ds.Tables[0].Rows[e.Item.ItemIndex];
row["nome"] = nome;
row["quantita"] = quantita;
ds.WriteXml(Server.MapPath("magazzino.xml"));
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
}
public void doDelete(Object sender, DataGridCommandEventArgs e)
{
mygrid.EditItemIndex = -1;
DataSet ds = CreateDataSource();
DataRow row = ds.Tables[0].Rows[e.Item.ItemIndex];
row.Delete();
ds.WriteXml(Server.MapPath("magazzino.xml"));
mygrid.DataSource = CreateDataSource();
mygrid.DataBind();
}
</script>
<body>
<form id="Form1" runat="server">
<asp:datagrid runat="server" AutoGenerateColumns="false"
width="450" id="mygrid"
OnEditCommand="doEdit"
OnCancelCommand="doCancel"
OnUpdateCommand="doUpdate"
OnDeleteCommand="doDelete">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<b> Nome </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label
Text='<%# DataBinder.Eval(Container.DataItem, "nome") %>'
runat="server"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="nome"
textMode="MultiLine" Columns="35"
Rows="8" Text='<%# DataBinder.Eval(Container.DataItem, "nome") %>'
runat="server"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
<b> Quantita </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label
Text='<%# DataBinder.Eval(Container.DataItem, "quantita") %>'
runat="server"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id="quantita"
textMode="MultiLine" Columns="35"
Rows="8" Text='<%# DataBinder.Eval(Container.DataItem, "quantita") %>'
runat="server"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn
ButtonType="LinkButton"
CancelText="Cancel"
EditText="Edit"
UpdateText="Update" />
<asp:ButtonColumn Text= "Delete" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp:datagrid>
</form>
</body>
</html>
Scarica il Codice...
Stampa la pagina