Let's take a look at the source code of ASP. NET:
Because XML files take up a lot of space, I had to paste the source program on this page. (It's also very long. You can only read it if you have sex)
<% @ Page Language = "C #" responseencoding = "gb2312" %>
<% @ Import namespace = "system. Data" %>
<% @ Import namespace = "system. xml" %>
<% @ Import namespace = "system. Io" %>
<Script language = "C #" runat = "server">
Dataset Ds; file: // defines a public dataset.
Dataview DV; file: // defines the public dataview.
String sortfield;
String Spath;
Public void page_load (Object SRC, eventargs E)
{
If (State ["adxml"] = NULL)
{
Spath = server. mappath (".") + "\ adbanners \ ad_gb.xml ";
DS = new dataset ();
DS. readxml (Spath );
State ["adxml"] = Ds;
}
Else
{
DS = (Dataset) State ["adxml"];
}
Dv = ds. Tables [0]. DefaultView;
Dv. Sort = "ImageUrl ";
If (! Page. IsPostBack)
{
CreateTable ();
}
}
File: // Binder
Public void CreateTable ()
{
DgXML. DataSource = dv;
DgXML. DataBind ();
}
File: // when turning pages
Public void dgXML_Changed (Object sender, DataGridPageChangedEventArgs e)
{
CreateTable ();
}
File: // Delete
Public void DelItem (Object sender, DataGridCommandEventArgs e)
{
If (LinkButton) e. CommandSource). CommandName = "del ")
{
File: // first obtain the number of rows on the current update page and CurrentPageIndex
Int CPI = (int) dgXML. CurrentPageIndex;
Int EIi = (INT) E. Item. itemindex;
Int ROW = CPI * 5 + EIi;
LB. Text = row. tostring ();
File: // Delete
DV. Delete (ROW );
Dgxml. edititemindex =-1;
DS. writexml (Spath );
Createtable ();
}
}
File: // cancel
Public void dgxml_cancel (Object sender, datagridcommandeventargs E)
{
Dgxml. edititemindex =-1;
Createtable ();
}
File: // Edit
Public void dgxml_edit (Object sender, datagridcommandeventargs E)
{
Dgxml. edititemindex = (INT) E. Item. itemindex;
Createtable ();
}
File: // update
Public void dgxml_update (Object sender, datagridcommandeventargs E)
{
Try
{
File: // first obtain the number of rows on the current update page and CurrentPageIndex
Int CPI = (int) dgXML. CurrentPageIndex;
Int EII = (int) e. Item. ItemIndex;
Int row = CPI * 5 + EII;
File: // lb. Text = row. ToString ();
File: // obtain the value
String ImageUrl = (TextBox) e. Item. Cells [2]. Controls [0]). Text;
String NavigateUrl = (TextBox) e. Item. Cells [3]. Controls [0]). Text;
String AlternateText = (TextBox) e. Item. Cells [4]. Controls [0]). Text;
String Keyword = (TextBox) e. Item. Cells [5]. Controls [0]). Text;
String Impressions = (TextBox) e. Item. Cells [6]. Controls [0]). Text;
Dv. Delete (row );
DataRow dr = ds. Tables [0]. NewRow ();
Dr [0] = ImageUrl;
Dr [1] = NavigateUrl;
Dr [2] = AlternateText;
Dr [3] = Keyword;
Dr [4] = Impressions;
Ds. Tables [0]. Rows. Add (dr );
Ds. WriteXml (sPath );
}
Catch (Exception ee)
{
Lb. Text = ee. ToString ();
}
DgXML. EditItemIndex =-1;
CreateTable ();
}
Public void PanelShow (Object sender, EventArgs e)
{
AddItem. Visible = true;
}
Public void AddItem_Click (Object sender, EventArgs e)
{
DataRow dr = ds. Tables [0]. NewRow ();
Dr [0] = mUrl. Text;
Dr [1] = aUrl. Text;
Dr [2] = mText. Text;
Dr [3] = aKey. Text;
Dr [4] = aTime. Text;
Ds. Tables [0]. Rows. Add (dr );
Ds. WriteXml (sPath );
CreateTable ();
AddItem. Visible = false;
}
</Script>
<Html>
<Head>
<Title> </title>
</Head>
<Body>
<Form id = "form1" runat = "server">
<Asp: DataGrid id = "dgXML" runat = "server"
AllowPaging = "True"
PageSize = "10"
BorderColor = "black"
BorderWidth = "1"
CellPadding = "3"
Font-Name = "Verdana"
Font-Size = "8pt"
HeaderStyle-BackColor = "# aaaadd"
PagerStyle-Mode = "NumericPages"
PagerStyle-HorizontalAlign = "Right"
PagerStyle-PrevPageText = "Previous Page"
PagerStyle-NextPageText = ""
OnPageIndexChanged = "dgXML_Changed"
OnEditCommand = "dgXML_Edit"
OnCancelCommand = "dgXML_Cancel"
OnUpdateCommand = "dgXML_Update"
OnItemCommand = "DelItem"
AutoGenerateColumns = "false"
>
<Property name = "Columns">
<Asp: ButtonColumn HeaderText = "delete" Text = "delete" CommandName = "del"/>
<Asp: EditCommandColumn EditText = "modify" CancelText = "cancel" UpdateText = "Update" ItemStyle-Wrap = "false"
HeaderText = "operation area" HeaderStyle-Wrap = "false"/>
<Asp: BoundColumn HeaderText = "image address (relative)" SortField = "ImageUrl" DataField = "ImageUrl"/>
<Asp: BoundColumn HeaderText = "link URL" SortField = "NavigateUrl" DataField = "NavigateUrl"/>
<Asp: BoundColumn HeaderText = "Image Description" SortField = "AlternateText" DataField = "AlternateText"/>
<Asp: BoundColumn HeaderText = "category" SortField = "Keyword" DataField = "Keyword"/>
<Asp: BoundColumn HeaderText = "display time" SortField = "Impressions" DataField = "Impressions"/>
</Property>
</Asp: DataGrid>
<Hr>
<Asp: Button id = "vi" Text = "Add new item" OnClick = "PanelShow" runat = "server"/>
<Br>
<Asp: Panel id = "AddItem" runat = "server" Visible = "false">
<Table>
<Tr Bgcolor = "# aaaadd"> <td colspan = 2> Add an advertisement page </td> </tr>
<Tr>
<Td> advertisement image URL: </td>
<Td> <asp: TextBox id = "mUrl" runat = "server" Text = "http: //"/> </td>
</Tr>
<Tr>
<Td> ad link address: </td>
<Td> <asp: TextBox id = "aUrl" runat = "server" Text = "http: //"/> </td>
</Tr>
<Tr>
<Td> Image Description: </td>
<Td> <asp: TextBox id = "mText" runat = "server"/> </td>
</Tr>
<Tr>
<Td> advertisement category: </td>
<Td> <asp: TextBox id = "aKey" runat = "server"/> </td>
</Tr>
<Tr>
<Td> display time </td>
<Td> <asp: TextBox id = "aTime" runat = "server"/> </td>
</Tr>
<Tr> <td>
<Asp: Button id = "submit" Text = "submit" OnClick = "AddItem_Click" runat = "server"/> </td> </tr>
</Table>
</Asp: Panel>
<Asp: Label id = "lb" runat = "server"/>
</Form>
</Body>
</Html>
Let's analyze it.