.net+XML 动态管理目录结构
前几天看了篇关于此内容的帖子,但是都没有具体实现,自己做了一下,大家多批评吧
aspx:
cs:
xml:
aspx:
1<%@ Page language="c#" Codebehind="WebForm5.aspx.cs" AutoEventWireup="false" Inherits="test35.WebForm5" %>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
3<HTML>
4 <HEAD>
5 <title>WebForm5</title>
6 <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
7 <meta content="C#" name="CODE_LANGUAGE">
8 <meta content="JavaScript" name="vs_defaultClientScript">
9 <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
10 </HEAD>
11 <body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0">
12 <form id="Form1" method="post" runat="server">
13 <FONT face="宋体">
14 <TABLE id="Table1" style="HEIGHT: 264px" cellSpacing="0" cellPadding="0" width="150%" border="0">
15 <TR>
16 <TD style="WIDTH: 24px"></TD>
17 <TD style="WIDTH: 873px"></TD>
18 <TD></TD>
19 </TR>
20 <TR>
21 <TD style="WIDTH: 24px; HEIGHT: 281px"></TD>
22 <TD style="WIDTH: 873px; HEIGHT: 281px"><asp:datagrid id="mydg" runat="server" AllowPaging="True" PageSize="6" AutoGenerateColumns="False"
23 Width="862px" CellPadding="4" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC">
24 <SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
25 <ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
26 <HeaderStyle Font-Bold="True" Height="5px" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
27 <FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
28 <Columns>
29 <asp:TemplateColumn>
30 <ItemTemplate>
31
32 <asp:CheckBox id="cb" runat="server"></asp:CheckBox>
33 </ItemTemplate>
34 </asp:TemplateColumn>
35 <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="序号"></asp:BoundColumn>
36 <asp:BoundColumn DataField="name" HeaderText="友情链接名称">
37 <HeaderStyle Width="50px"></HeaderStyle>
38 <ItemStyle Wrap="False"></ItemStyle>
39 </asp:BoundColumn>
40 <asp:BoundColumn DataField="title" HeaderText="Title"></asp:BoundColumn>
41 <asp:BoundColumn DataField="url" HeaderText="URL">
42 <HeaderStyle Width="250px"></HeaderStyle>
43 </asp:BoundColumn>
44 <asp:TemplateColumn HeaderText="Target">
45 <ItemTemplate>
46 <asp:DropDownList id="ddl1" runat="server" Width="80px" Enabled="False"></asp:DropDownList>
47 </ItemTemplate>
48 <EditItemTemplate>
49 <asp:DropDownList id="ddl2" runat="server" Width="80px">
50 <asp:ListItem Value="_blank">_blank</asp:ListItem>
51 <asp:ListItem Value="_self">_self</asp:ListItem>
52 <asp:ListItem Value="parent">parent</asp:ListItem>
53 <asp:ListItem Value="_top">_top</asp:ListItem>
54 <asp:ListItem Value="main">main</asp:ListItem>
55 <asp:ListItem Value="left">left</asp:ListItem>
56 <asp:ListItem Value="right">right</asp:ListItem>
57 <asp:ListItem Value="button">button</asp:ListItem>
58 </asp:DropDownList>
59 </EditItemTemplate>
60 </asp:TemplateColumn>
61 <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
62 <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
63 <asp:TemplateColumn>
64 <ItemTemplate>
65 <asp:LinkButton id="lb_add" runat="server" CommandName="add">添加</asp:LinkButton>
66 </ItemTemplate>
67 </asp:TemplateColumn>
68 </Columns>
69 <PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
70 </asp:datagrid></TD>
71 <TD style="HEIGHT: 281px"></TD>
72 </TR>
73 <TR>
74 <TD style="WIDTH: 24px"></TD>
75 <TD style="WIDTH: 873px"></TD>
76 <TD></TD>
77 </TR>
78 <TR>
79 <TD style="WIDTH: 24px"></TD>
80 <TD style="WIDTH: 873px"><asp:checkbox id="cb_selAll" runat="server" Text="全选" AutoPostBack="True"></asp:checkbox>
81 <asp:button id="bt_del" runat="server" Width="72px" Text="删除所选"></asp:button></TD>
82 <TD></TD>
83 </TR>
84 </TABLE>
85 </FONT>
86 </form>
87 </body>
88</HTML>
89
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
3<HTML>
4 <HEAD>
5 <title>WebForm5</title>
6 <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
7 <meta content="C#" name="CODE_LANGUAGE">
8 <meta content="JavaScript" name="vs_defaultClientScript">
9 <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
10 </HEAD>
11 <body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0">
12 <form id="Form1" method="post" runat="server">
13 <FONT face="宋体">
14 <TABLE id="Table1" style="HEIGHT: 264px" cellSpacing="0" cellPadding="0" width="150%" border="0">
15 <TR>
16 <TD style="WIDTH: 24px"></TD>
17 <TD style="WIDTH: 873px"></TD>
18 <TD></TD>
19 </TR>
20 <TR>
21 <TD style="WIDTH: 24px; HEIGHT: 281px"></TD>
22 <TD style="WIDTH: 873px; HEIGHT: 281px"><asp:datagrid id="mydg" runat="server" AllowPaging="True" PageSize="6" AutoGenerateColumns="False"
23 Width="862px" CellPadding="4" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC">
24 <SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
25 <ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
26 <HeaderStyle Font-Bold="True" Height="5px" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
27 <FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
28 <Columns>
29 <asp:TemplateColumn>
30 <ItemTemplate>
31
32 <asp:CheckBox id="cb" runat="server"></asp:CheckBox>
33 </ItemTemplate>
34 </asp:TemplateColumn>
35 <asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="序号"></asp:BoundColumn>
36 <asp:BoundColumn DataField="name" HeaderText="友情链接名称">
37 <HeaderStyle Width="50px"></HeaderStyle>
38 <ItemStyle Wrap="False"></ItemStyle>
39 </asp:BoundColumn>
40 <asp:BoundColumn DataField="title" HeaderText="Title"></asp:BoundColumn>
41 <asp:BoundColumn DataField="url" HeaderText="URL">
42 <HeaderStyle Width="250px"></HeaderStyle>
43 </asp:BoundColumn>
44 <asp:TemplateColumn HeaderText="Target">
45 <ItemTemplate>
46 <asp:DropDownList id="ddl1" runat="server" Width="80px" Enabled="False"></asp:DropDownList>
47 </ItemTemplate>
48 <EditItemTemplate>
49 <asp:DropDownList id="ddl2" runat="server" Width="80px">
50 <asp:ListItem Value="_blank">_blank</asp:ListItem>
51 <asp:ListItem Value="_self">_self</asp:ListItem>
52 <asp:ListItem Value="parent">parent</asp:ListItem>
53 <asp:ListItem Value="_top">_top</asp:ListItem>
54 <asp:ListItem Value="main">main</asp:ListItem>
55 <asp:ListItem Value="left">left</asp:ListItem>
56 <asp:ListItem Value="right">right</asp:ListItem>
57 <asp:ListItem Value="button">button</asp:ListItem>
58 </asp:DropDownList>
59 </EditItemTemplate>
60 </asp:TemplateColumn>
61 <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
62 <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
63 <asp:TemplateColumn>
64 <ItemTemplate>
65 <asp:LinkButton id="lb_add" runat="server" CommandName="add">添加</asp:LinkButton>
66 </ItemTemplate>
67 </asp:TemplateColumn>
68 </Columns>
69 <PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
70 </asp:datagrid></TD>
71 <TD style="HEIGHT: 281px"></TD>
72 </TR>
73 <TR>
74 <TD style="WIDTH: 24px"></TD>
75 <TD style="WIDTH: 873px"></TD>
76 <TD></TD>
77 </TR>
78 <TR>
79 <TD style="WIDTH: 24px"></TD>
80 <TD style="WIDTH: 873px"><asp:checkbox id="cb_selAll" runat="server" Text="全选" AutoPostBack="True"></asp:checkbox>
81 <asp:button id="bt_del" runat="server" Width="72px" Text="删除所选"></asp:button></TD>
82 <TD></TD>
83 </TR>
84 </TABLE>
85 </FONT>
86 </form>
87 </body>
88</HTML>
89
cs:
1using System;
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11using System.Data.SqlClient;
12using System.Xml;
13
14
15namespace test35
16{
17 /// <summary>
18 /// WebForm5 的摘要说明。
19 /// </summary>
20 public class WebForm5 : System.Web.UI.Page
21 {
22 protected System.Web.UI.WebControls.DataGrid mydg;
23 protected System.Web.UI.WebControls.CheckBox cb_selAll;
24 protected System.Web.UI.WebControls.Button bt_del;
25 protected DataSet ds;
26 protected string path = "";
27 protected XmlDocument doc;
28 protected string add_num_str="";
29 protected int add_num_int = 0;
30 protected int e_num = 0;
31
32 private void Page_Load(object sender, System.EventArgs e)
33 {
34 if(!Page.IsPostBack)
35 {
36 bindgrid();
37 }
38 }
39
40
41
42 Web 窗体设计器生成的代码
73
74 /// <summary>
75 /// 棒定datagrid;
76 /// </summary>
77 private void bindgrid()
78 {
79 path ="d://test//navigator.xml";
80 ds = new DataSet();
81 ds.ReadXml(path);
82 this.mydg.DataSource = ds;
83 this.mydg.DataKeyField = "id";
84 this.DataBind();
85
86 ///绑定DDL
87 foreach(DataGridItem dgi in this.mydg.Items)
88 {
89 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
90 {
91 object o = dgi.Cells[5].FindControl("ddl1");
92 DropDownList ddl = (DropDownList)o;
93 string itemValue = getvalue_DDL(ddl,dgi.ItemIndex);
94 ddl.Items.Clear();
95 ddl.Items.Add(itemValue);
96 }
97 }
98 }
99
100//--------------------------------------------------------------------------------------
101 /// <summary>
102 /// 绑定grid 1次重载
103 /// </summary>
104 /// <param name="ddl_value">ddl的值</param>
105 private void bindgrid(string ddl_value)
106 {
107 path ="d://test//navigator.xml";
108 ds = new DataSet();
109 ds.ReadXml(path);
110 this.mydg.DataSource = ds;
111 this.mydg.DataKeyField = "id";
112 this.DataBind();
113
114 ///绑定DDL
115 foreach(DataGridItem dgi in this.mydg.Items)
116 {
117 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
118 {
119 if(dgi.ItemIndex==this.e_num)
120 {
121 object o = dgi.Cells[5].FindControl("ddl1");
122 DropDownList ddl = (DropDownList)o;
123 string itemValue = ddl_value;
124 ddl.Items.Clear();
125 ddl.Items.Add(itemValue);
126 }
127 else
128 {
129 object o = dgi.Cells[5].FindControl("ddl1");
130 DropDownList ddl = (DropDownList)o;
131 string itemValue = getvalue_DDL(ddl,dgi.ItemIndex);
132 ddl.Items.Clear();
133 ddl.Items.Add(itemValue);
134 }
135
136 }
137 }
138 }
139
140//-------------------------------------------------------------------------------------
141 /// <summary>
142 /// 从doc中取得值,放入datagrid的item里
143 /// </summary>
144 /// <param name="drop">dropdownlist的实例</param>
145 /// <param name="num">所在行的索引</param>
146 /// <returns>xml中target的值</returns>
147 private string getvalue_DDL(System.Web.UI.WebControls.DropDownList drop,int num)
148 {
149 string text = "";
150 XmlNodeList nodelist = doc.SelectNodes("//link");
151 text = nodelist[num].ChildNodes[3].InnerText;
152 return text;
153 }
154
155//--------------------------------------------------------------------------------------
156 /// <summary>
157 /// initxml 生成装载了navigator.xml的XmlDocument=doc;
158 /// </summary>
159 private void initXML()
160 {
161 doc = new XmlDocument();
162 doc.Load("d://test//navigator.xml");
163 }
164
165//-------------------------------------------------------------------------------------
166 /// <summary>
167 /// 编辑
168 /// </summary>
169 /// <param name="source"></param>
170 /// <param name="e"></param>
171 private void mydg_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
172 {
173 this.mydg.EditItemIndex = e.Item.ItemIndex;
174 bindgrid();
175 }
176
177//----------------------------------------------------------------------------------------
178 /// <summary>
179 /// 全选删除,调用link类
180 /// </summary>
181 /// <param name="sender"></param>
182 /// <param name="e"></param>
183 private void bt_del_Click(object sender, System.EventArgs e)
184 {
185
186 ArrayList list = new ArrayList();
187 foreach(DataGridItem dgi in this.mydg.Items)
188 {
189
190 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
191 {
192
193 CheckBox check = (CheckBox)dgi.FindControl("cb");
194 if(check!=null&&check.Checked==true)
195 {
196
197 list.Add(this.mydg.DataKeys[dgi.ItemIndex].ToString());
198
199 }
200 }
201 }
202 int num = list.Count;
203
204 test35.link alink =new link();
205 for(int i=0;i<num;i++)
206 {
207 alink.remove(list[i].ToString());
208 Response.Write("<script language='javascript'>alert('"+alink.Info.ToString()+"')</script>");
209 }
210 this.bindgrid();
211 }
212
213//-----------------------------------------------------------------------------------------
214 /// <summary>
215 /// 取消
216 /// </summary>
217 /// <param name="source"></param>
218 /// <param name="e"></param>
219 private void mydg_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
220 {
221 this.mydg.EditItemIndex = -1;
222 bindgrid();
223 }
224
225//-----------------------------------------------------------------------------------------
226 /// <summary>
227 /// 全选操作
228 /// </summary>
229 /// <param name="sender"></param>
230 /// <param name="e"></param>
231 private void cb_selAll_CheckedChanged(object sender, System.EventArgs e)
232 {
233 foreach(DataGridItem dgi in this.mydg.Items)
234 {
235
236 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
237 {
238
239 CheckBox check = (CheckBox)dgi.FindControl("cb");
240 if(check!=null&&check.Checked==false)
241 {
242 check.Checked=true;
243 }
244 else if(check.Checked==true)
245 {
246 check.Checked = false;
247 }
248 }
249 }
250 }
251
252//------------------------------------------------------------------------------------------
253 /// <summary>
254 /// 更新
255 /// </summary>
256 /// <param name="source"></param>
257 /// <param name="e"></param>
258 private void mydg_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
259 {
260 string name = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
261 string title = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
262 string url = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
263 string target = ((DropDownList)e.Item.Cells[5].FindControl("ddl2")).SelectedItem.Value;
264 string id = this.mydg.DataKeys[e.Item.ItemIndex].ToString();
265 string newID = id;
266 this.e_num = e.Item.ItemIndex;
267 link alink = new link();
268 string[] values = {id,url,title,target,name};
269 alink.update(id,url,title,target,name);
270 this.mydg.EditItemIndex=-1;
271 this.bindgrid(target);
272
273 }
274
275//--------------------------------------------------------------------------------------------
276 /// <summary>
277 /// 分页
278 /// </summary>
279 /// <param name="source"></param>
280 /// <param name="e"></param>
281 private void mydg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
282 {
283 this.mydg.CurrentPageIndex = e.NewPageIndex;
284 this.bindgrid();
285 }
286//--------------------------------------------------------------------------------------------
287 /// <summary>
288 /// 添加一行记录
289 /// </summary>
290 /// <param name="source"></param>
291 /// <param name="e"></param>
292 private void mydg_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
293 {
294 if(e.CommandName=="add")
295 {
296 object o = e.CommandSource;
297 LinkButton lb = (LinkButton)o;
298 this.add_num_str = this.mydg.DataKeys[e.Item.ItemIndex].ToString();
299 //lb.Click+=new EventHandler(lb_Click);
300 //Response.Write("<script language='javascript'>alert('"+this.add_num_str+"')</script>");
301 Response.Write("<script language='javascript'>alert('!')</script>");
302 int row_All = doc.SelectNodes("//link").Count;
303 this.add_num_int = Convert.ToInt32(this.add_num_str);
304
305 for(int i =this.add_num_int;i<row_All;i++)
306 {
307 XmlNodeList nodelist = doc.SelectNodes("//link");
308 int temp_id = Convert.ToInt32(nodelist[i].ChildNodes[0].InnerText);
309 temp_id += 1 ;
310 nodelist[i].ChildNodes[0].InnerText = temp_id.ToString();
311 }
312
313 XmlElement elem = doc.CreateElement("link");
314 //1
315 XmlNode node1 = doc.CreateNode(XmlNodeType.Element,"id",null);
316 int temp = this.add_num_int+1;
317 node1.InnerText =temp.ToString();
318 elem.AppendChild(node1);
319
320 //2
321 XmlNode node2 = doc.CreateNode(XmlNodeType.Element,"url",null);
322 node2.InnerText = "";
323 elem.AppendChild(node2);
324
325 //3
326 XmlNode node3 = doc.CreateNode(XmlNodeType.Element,"title",null);
327 node3.InnerText = "";
328 elem.AppendChild(node3);
329
330 //4
331 XmlNode node4 = doc.CreateNode(XmlNodeType.Element,"target",null);
332 node4.InnerText = "";
333 elem.AppendChild(node4);
334
335 //5
336 XmlNode node5 = doc.CreateNode(XmlNodeType.Element,"name",null);
337 node5.InnerText = "";
338 elem.AppendChild(node5);
339
340 XmlNode node_all = doc.SelectSingleNode("//links");
341 node_all.AppendChild(elem);
342
343 XmlNode oldNode = doc.SelectSingleNode("//link[./id='"+this.add_num_str+"']");
344
345 node_all.InsertAfter(elem,oldNode);
346 doc.Save("d://test//navigator.xml");
347 this.bindgrid();
348
349 }
350 }
351
352
353//--------------------------------------------------------------------------------------------
354
355 /// <summary>
356 /// 删除 使用 link.remove(string id)
357 /// </summary>
358 /// <param name="source"></param>
359 /// <param name="e"></param>
360 private void mydg_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
361 {
362 string id = this.mydg.DataKeys[e.Item.ItemIndex].ToString();
363 link link_del =new link();
364 link_del.remove(id);
365 this.bindgrid();
366 Response.Write("<script language='javascript'>alert('"+link_del.Info+"')</script>");
367 }
368//-----------------------------------------------------------------------------------------------
369 }
370}
371
372
373
374
375
376
377
2using System.Collections;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Web;
7using System.Web.SessionState;
8using System.Web.UI;
9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11using System.Data.SqlClient;
12using System.Xml;
13
14
15namespace test35
16{
17 /// <summary>
18 /// WebForm5 的摘要说明。
19 /// </summary>
20 public class WebForm5 : System.Web.UI.Page
21 {
22 protected System.Web.UI.WebControls.DataGrid mydg;
23 protected System.Web.UI.WebControls.CheckBox cb_selAll;
24 protected System.Web.UI.WebControls.Button bt_del;
25 protected DataSet ds;
26 protected string path = "";
27 protected XmlDocument doc;
28 protected string add_num_str="";
29 protected int add_num_int = 0;
30 protected int e_num = 0;
31
32 private void Page_Load(object sender, System.EventArgs e)
33 {
34 if(!Page.IsPostBack)
35 {
36 bindgrid();
37 }
38 }
39
40
41
42 Web 窗体设计器生成的代码
73
74 /// <summary>
75 /// 棒定datagrid;
76 /// </summary>
77 private void bindgrid()
78 {
79 path ="d://test//navigator.xml";
80 ds = new DataSet();
81 ds.ReadXml(path);
82 this.mydg.DataSource = ds;
83 this.mydg.DataKeyField = "id";
84 this.DataBind();
85
86 ///绑定DDL
87 foreach(DataGridItem dgi in this.mydg.Items)
88 {
89 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
90 {
91 object o = dgi.Cells[5].FindControl("ddl1");
92 DropDownList ddl = (DropDownList)o;
93 string itemValue = getvalue_DDL(ddl,dgi.ItemIndex);
94 ddl.Items.Clear();
95 ddl.Items.Add(itemValue);
96 }
97 }
98 }
99
100//--------------------------------------------------------------------------------------
101 /// <summary>
102 /// 绑定grid 1次重载
103 /// </summary>
104 /// <param name="ddl_value">ddl的值</param>
105 private void bindgrid(string ddl_value)
106 {
107 path ="d://test//navigator.xml";
108 ds = new DataSet();
109 ds.ReadXml(path);
110 this.mydg.DataSource = ds;
111 this.mydg.DataKeyField = "id";
112 this.DataBind();
113
114 ///绑定DDL
115 foreach(DataGridItem dgi in this.mydg.Items)
116 {
117 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
118 {
119 if(dgi.ItemIndex==this.e_num)
120 {
121 object o = dgi.Cells[5].FindControl("ddl1");
122 DropDownList ddl = (DropDownList)o;
123 string itemValue = ddl_value;
124 ddl.Items.Clear();
125 ddl.Items.Add(itemValue);
126 }
127 else
128 {
129 object o = dgi.Cells[5].FindControl("ddl1");
130 DropDownList ddl = (DropDownList)o;
131 string itemValue = getvalue_DDL(ddl,dgi.ItemIndex);
132 ddl.Items.Clear();
133 ddl.Items.Add(itemValue);
134 }
135
136 }
137 }
138 }
139
140//-------------------------------------------------------------------------------------
141 /// <summary>
142 /// 从doc中取得值,放入datagrid的item里
143 /// </summary>
144 /// <param name="drop">dropdownlist的实例</param>
145 /// <param name="num">所在行的索引</param>
146 /// <returns>xml中target的值</returns>
147 private string getvalue_DDL(System.Web.UI.WebControls.DropDownList drop,int num)
148 {
149 string text = "";
150 XmlNodeList nodelist = doc.SelectNodes("//link");
151 text = nodelist[num].ChildNodes[3].InnerText;
152 return text;
153 }
154
155//--------------------------------------------------------------------------------------
156 /// <summary>
157 /// initxml 生成装载了navigator.xml的XmlDocument=doc;
158 /// </summary>
159 private void initXML()
160 {
161 doc = new XmlDocument();
162 doc.Load("d://test//navigator.xml");
163 }
164
165//-------------------------------------------------------------------------------------
166 /// <summary>
167 /// 编辑
168 /// </summary>
169 /// <param name="source"></param>
170 /// <param name="e"></param>
171 private void mydg_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
172 {
173 this.mydg.EditItemIndex = e.Item.ItemIndex;
174 bindgrid();
175 }
176
177//----------------------------------------------------------------------------------------
178 /// <summary>
179 /// 全选删除,调用link类
180 /// </summary>
181 /// <param name="sender"></param>
182 /// <param name="e"></param>
183 private void bt_del_Click(object sender, System.EventArgs e)
184 {
185
186 ArrayList list = new ArrayList();
187 foreach(DataGridItem dgi in this.mydg.Items)
188 {
189
190 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
191 {
192
193 CheckBox check = (CheckBox)dgi.FindControl("cb");
194 if(check!=null&&check.Checked==true)
195 {
196
197 list.Add(this.mydg.DataKeys[dgi.ItemIndex].ToString());
198
199 }
200 }
201 }
202 int num = list.Count;
203
204 test35.link alink =new link();
205 for(int i=0;i<num;i++)
206 {
207 alink.remove(list[i].ToString());
208 Response.Write("<script language='javascript'>alert('"+alink.Info.ToString()+"')</script>");
209 }
210 this.bindgrid();
211 }
212
213//-----------------------------------------------------------------------------------------
214 /// <summary>
215 /// 取消
216 /// </summary>
217 /// <param name="source"></param>
218 /// <param name="e"></param>
219 private void mydg_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
220 {
221 this.mydg.EditItemIndex = -1;
222 bindgrid();
223 }
224
225//-----------------------------------------------------------------------------------------
226 /// <summary>
227 /// 全选操作
228 /// </summary>
229 /// <param name="sender"></param>
230 /// <param name="e"></param>
231 private void cb_selAll_CheckedChanged(object sender, System.EventArgs e)
232 {
233 foreach(DataGridItem dgi in this.mydg.Items)
234 {
235
236 if(dgi.ItemType==ListItemType.Item||dgi.ItemType==ListItemType.AlternatingItem)
237 {
238
239 CheckBox check = (CheckBox)dgi.FindControl("cb");
240 if(check!=null&&check.Checked==false)
241 {
242 check.Checked=true;
243 }
244 else if(check.Checked==true)
245 {
246 check.Checked = false;
247 }
248 }
249 }
250 }
251
252//------------------------------------------------------------------------------------------
253 /// <summary>
254 /// 更新
255 /// </summary>
256 /// <param name="source"></param>
257 /// <param name="e"></param>
258 private void mydg_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
259 {
260 string name = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
261 string title = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
262 string url = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
263 string target = ((DropDownList)e.Item.Cells[5].FindControl("ddl2")).SelectedItem.Value;
264 string id = this.mydg.DataKeys[e.Item.ItemIndex].ToString();
265 string newID = id;
266 this.e_num = e.Item.ItemIndex;
267 link alink = new link();
268 string[] values = {id,url,title,target,name};
269 alink.update(id,url,title,target,name);
270 this.mydg.EditItemIndex=-1;
271 this.bindgrid(target);
272
273 }
274
275//--------------------------------------------------------------------------------------------
276 /// <summary>
277 /// 分页
278 /// </summary>
279 /// <param name="source"></param>
280 /// <param name="e"></param>
281 private void mydg_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
282 {
283 this.mydg.CurrentPageIndex = e.NewPageIndex;
284 this.bindgrid();
285 }
286//--------------------------------------------------------------------------------------------
287 /// <summary>
288 /// 添加一行记录
289 /// </summary>
290 /// <param name="source"></param>
291 /// <param name="e"></param>
292 private void mydg_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
293 {
294 if(e.CommandName=="add")
295 {
296 object o = e.CommandSource;
297 LinkButton lb = (LinkButton)o;
298 this.add_num_str = this.mydg.DataKeys[e.Item.ItemIndex].ToString();
299 //lb.Click+=new EventHandler(lb_Click);
300 //Response.Write("<script language='javascript'>alert('"+this.add_num_str+"')</script>");
301 Response.Write("<script language='javascript'>alert('!')</script>");
302 int row_All = doc.SelectNodes("//link").Count;
303 this.add_num_int = Convert.ToInt32(this.add_num_str);
304
305 for(int i =this.add_num_int;i<row_All;i++)
306 {
307 XmlNodeList nodelist = doc.SelectNodes("//link");
308 int temp_id = Convert.ToInt32(nodelist[i].ChildNodes[0].InnerText);
309 temp_id += 1 ;
310 nodelist[i].ChildNodes[0].InnerText = temp_id.ToString();
311 }
312
313 XmlElement elem = doc.CreateElement("link");
314 //1
315 XmlNode node1 = doc.CreateNode(XmlNodeType.Element,"id",null);
316 int temp = this.add_num_int+1;
317 node1.InnerText =temp.ToString();
318 elem.AppendChild(node1);
319
320 //2
321 XmlNode node2 = doc.CreateNode(XmlNodeType.Element,"url",null);
322 node2.InnerText = "";
323 elem.AppendChild(node2);
324
325 //3
326 XmlNode node3 = doc.CreateNode(XmlNodeType.Element,"title",null);
327 node3.InnerText = "";
328 elem.AppendChild(node3);
329
330 //4
331 XmlNode node4 = doc.CreateNode(XmlNodeType.Element,"target",null);
332 node4.InnerText = "";
333 elem.AppendChild(node4);
334
335 //5
336 XmlNode node5 = doc.CreateNode(XmlNodeType.Element,"name",null);
337 node5.InnerText = "";
338 elem.AppendChild(node5);
339
340 XmlNode node_all = doc.SelectSingleNode("//links");
341 node_all.AppendChild(elem);
342
343 XmlNode oldNode = doc.SelectSingleNode("//link[./id='"+this.add_num_str+"']");
344
345 node_all.InsertAfter(elem,oldNode);
346 doc.Save("d://test//navigator.xml");
347 this.bindgrid();
348
349 }
350 }
351
352
353//--------------------------------------------------------------------------------------------
354
355 /// <summary>
356 /// 删除 使用 link.remove(string id)
357 /// </summary>
358 /// <param name="source"></param>
359 /// <param name="e"></param>
360 private void mydg_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
361 {
362 string id = this.mydg.DataKeys[e.Item.ItemIndex].ToString();
363 link link_del =new link();
364 link_del.remove(id);
365 this.bindgrid();
366 Response.Write("<script language='javascript'>alert('"+link_del.Info+"')</script>");
367 }
368//-----------------------------------------------------------------------------------------------
369 }
370}
371
372
373
374
375
376
377
xml:
1<?xml version="1.0" encoding="gb2312"?>
2<links>
3 <link>
4 <id>1</id>
5 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=7</url>
6 <title>VB</title>
7 <target>left</target>
8 <name>VB</name>
9 </link>
10 <link>
11 <id>2</id>
12 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=11</url>
13 <title>VBScript</title>
14 <target>_self</target>
15 <name>VBScript</name>
16 </link>
17 <link>
18 <id>3</id>
19 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=12</url>
20 <title>ASP</title>
21 <target>_blank</target>
22 <name>ASP</name>
23 </link>
24 <link>
25 <id>4</id>
26 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=13</url>
27 <title>ASP.NET</title>
28 <target>_blank</target>
29 <name>ASP.NET</name>
30 </link>
31 <link>
32 <id>5</id>
33 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=5</url>
34 <title>C#</title>
35 <target>_blank</target>
36 <name>C#</name>
37 </link>
38 <link>
39 <id>6</id>
40 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=30</url>
41 <title>J#</title>
42 <target>_blank</target>
43 <name>J#</name>
44 </link>
45 <link>
46 <id>7</id>
47 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=21</url>
48 <title>ADO.NET</title>
49 <target>_blank</target>
50 <name>ADO.NET</name>
51 </link>
52 <link>
53 <id>8</id>
54 <url>http://172.17.5.170/web/default.aspx</url>
55 <title>返回首页</title>
56 <target>_blank</target>
57 <name>返回首页</name>
58 </link>
59 <link>
60 <id>9</id>
61 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=20</url>
62 <title>ADO</title>
63 <target>_blank</target>
64 <name>ADO</name>
65 </link>
66 <link>
67 <id>10</id>
68 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=9</url>
69 <title>JAVA</title>
70 <target>_blank</target>
71 <name>JAVA</name>
72 </link>
73 <link>
74 <id>11</id>
75 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=10</url>
76 <title>JavaScript</title>
77 <target>_self</target>
78 <name>JavaScript</name>
79 </link>
80 <link>
81 <id>12</id>
82 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=14</url>
83 <title>HTML</title>
84 <target>_blank</target>
85 <name>HTML</name>
86 </link>
87 <link>
88 <id>13</id>
89 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=15</url>
90 <title>XML</title>
91 <target>_blank</target>
92 <name>XML</name>
93 </link>
94 <link>
95 <id>14</id>
96 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=16</url>
97 <title>CSS</title>
98 <target>_blank</target>
99 <name>CSS</name>
100 </link>
101 <link>
102 <id>15</id>
103 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=3</url>
104 <title>C</title>
105 <target>_blank</target>
106 <name>C</name>
107 </link>
108 <link>
109 <id>16</id>
110 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=4</url>
111 <title>C++</title>
112 <target>_blank</target>
113 <name>C++</name>
114 </link>
115 <link>
116 <id>17</id>
117 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=6</url>
118 <title>Delphi</title>
119 <target>_blank</target>
120 <name>Delphi</name>
121 </link>
122 <link>
123 <id>18</id>
124 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=30</url>
125 <title>PHP</title>
126 <target>_blank</target>
127 <name>PHP</name>
128 </link>
129 <link>
130 <id>19</id>
131 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=5</url>
132 <title>.NET</title>
133 <target>_blank</target>
134 <name>.NET</name>
135 </link>
136 <link>
137 <id>20</id>
138 <url>http://172.17.5.170/web/resource/CSDN/CSDN论坛精华.html</url>
139 <title>CSDN论坛精华</title>
140 <target>_self</target>
141 <name>CSDN论坛精华</name>
142 </link>
143 <link>
144 <id>21</id>
145 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=19</url>
146 <title>Database</title>
147 <target>_blank</target>
148 <name>Database</name>
149 </link>
150 <link>
151 <id>22</id>
152 <url>javascript:window.external.addFavorite('http://172.17.5.170/web/','Articles')</url>
153 <title>加入收藏</title>
154 <target>_self</target>
155 <name>加入收藏</name>
156 </link>
157 <link>
158 <id>23</id>
159 <url>http://172.17.5.170/web/Note/default.aspx?function=all</url>
160 <title>留言板</title>
161 <target>_blank</target>
162 <name>留言板</name>
163 </link>
164 <link>
165 <id>24</id>
166 <url>http://172.17.5.170/web/Download/default.aspx</url>
167 <title>下载</title>
168 <target>_blank</target>
169 <name>下载</name>
170 </link>
171 <link>
172 <id>25</id>
173 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=22</url>
174 <title> PowerBuilder</title>
175 <target>_self</target>
176 <name>PowerBuilder</name>
177 </link>
178 <link>
179 <id>26</id>
180 <url>http://172.17.5.170/web/Article/column.htm</url>
181 <title>栏目查看</title>
182 <target>_blank</target>
183 <name>栏目查看</name>
184 </link>
185 <link>
186 <id>27</id>
187 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=24</url>
188 <title>Novel</title>
189 <target>_blank</target>
190 <name>Novel</name>
191 </link>
192 <link>
193 <id>28</id>
194 <url>http://172.17.5.170/web/Article/searchArticle.aspx</url>
195 <title>文章搜索</title>
196 <target>_blank</target>
197 <name>文章搜索</name>
198 </link>
199 <link>
200 <id>29</id>
201 <url>http://172.17.5.170/web/blog/course.htm</url>
202 <title>个人Blog</title>
203 <target>_blank</target>
204 <name>个人Blog</name>
205 </link>
206 <link>
207 <id>30</id>
208 <url>http://172.17.5.170/web/contract.aspx</url>
209 <title>联系我们</title>
210 <target>_blank</target>
211 <name>联系我们</name>
212 </link>
213 <link>
214 <id>31</id>
215 <url>http://172.17.5.170/web/Article/default.aspx</url>
216 <title>文章系统</title>
217 <target>parent</target>
218 <name>文章系统</name>
219 </link>
220 <link>
221 <id>32</id>
222 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=35</url>
223 <title>Linux系统</title>
224 <target>_blank</target>
225 <name>Linux</name>
226 </link>
227</links>
2<links>
3 <link>
4 <id>1</id>
5 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=7</url>
6 <title>VB</title>
7 <target>left</target>
8 <name>VB</name>
9 </link>
10 <link>
11 <id>2</id>
12 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=11</url>
13 <title>VBScript</title>
14 <target>_self</target>
15 <name>VBScript</name>
16 </link>
17 <link>
18 <id>3</id>
19 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=12</url>
20 <title>ASP</title>
21 <target>_blank</target>
22 <name>ASP</name>
23 </link>
24 <link>
25 <id>4</id>
26 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=13</url>
27 <title>ASP.NET</title>
28 <target>_blank</target>
29 <name>ASP.NET</name>
30 </link>
31 <link>
32 <id>5</id>
33 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=5</url>
34 <title>C#</title>
35 <target>_blank</target>
36 <name>C#</name>
37 </link>
38 <link>
39 <id>6</id>
40 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=30</url>
41 <title>J#</title>
42 <target>_blank</target>
43 <name>J#</name>
44 </link>
45 <link>
46 <id>7</id>
47 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=21</url>
48 <title>ADO.NET</title>
49 <target>_blank</target>
50 <name>ADO.NET</name>
51 </link>
52 <link>
53 <id>8</id>
54 <url>http://172.17.5.170/web/default.aspx</url>
55 <title>返回首页</title>
56 <target>_blank</target>
57 <name>返回首页</name>
58 </link>
59 <link>
60 <id>9</id>
61 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=20</url>
62 <title>ADO</title>
63 <target>_blank</target>
64 <name>ADO</name>
65 </link>
66 <link>
67 <id>10</id>
68 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=9</url>
69 <title>JAVA</title>
70 <target>_blank</target>
71 <name>JAVA</name>
72 </link>
73 <link>
74 <id>11</id>
75 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=10</url>
76 <title>JavaScript</title>
77 <target>_self</target>
78 <name>JavaScript</name>
79 </link>
80 <link>
81 <id>12</id>
82 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=14</url>
83 <title>HTML</title>
84 <target>_blank</target>
85 <name>HTML</name>
86 </link>
87 <link>
88 <id>13</id>
89 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=15</url>
90 <title>XML</title>
91 <target>_blank</target>
92 <name>XML</name>
93 </link>
94 <link>
95 <id>14</id>
96 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=16</url>
97 <title>CSS</title>
98 <target>_blank</target>
99 <name>CSS</name>
100 </link>
101 <link>
102 <id>15</id>
103 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=3</url>
104 <title>C</title>
105 <target>_blank</target>
106 <name>C</name>
107 </link>
108 <link>
109 <id>16</id>
110 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=4</url>
111 <title>C++</title>
112 <target>_blank</target>
113 <name>C++</name>
114 </link>
115 <link>
116 <id>17</id>
117 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=6</url>
118 <title>Delphi</title>
119 <target>_blank</target>
120 <name>Delphi</name>
121 </link>
122 <link>
123 <id>18</id>
124 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=30</url>
125 <title>PHP</title>
126 <target>_blank</target>
127 <name>PHP</name>
128 </link>
129 <link>
130 <id>19</id>
131 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=5</url>
132 <title>.NET</title>
133 <target>_blank</target>
134 <name>.NET</name>
135 </link>
136 <link>
137 <id>20</id>
138 <url>http://172.17.5.170/web/resource/CSDN/CSDN论坛精华.html</url>
139 <title>CSDN论坛精华</title>
140 <target>_self</target>
141 <name>CSDN论坛精华</name>
142 </link>
143 <link>
144 <id>21</id>
145 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=19</url>
146 <title>Database</title>
147 <target>_blank</target>
148 <name>Database</name>
149 </link>
150 <link>
151 <id>22</id>
152 <url>javascript:window.external.addFavorite('http://172.17.5.170/web/','Articles')</url>
153 <title>加入收藏</title>
154 <target>_self</target>
155 <name>加入收藏</name>
156 </link>
157 <link>
158 <id>23</id>
159 <url>http://172.17.5.170/web/Note/default.aspx?function=all</url>
160 <title>留言板</title>
161 <target>_blank</target>
162 <name>留言板</name>
163 </link>
164 <link>
165 <id>24</id>
166 <url>http://172.17.5.170/web/Download/default.aspx</url>
167 <title>下载</title>
168 <target>_blank</target>
169 <name>下载</name>
170 </link>
171 <link>
172 <id>25</id>
173 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=22</url>
174 <title> PowerBuilder</title>
175 <target>_self</target>
176 <name>PowerBuilder</name>
177 </link>
178 <link>
179 <id>26</id>
180 <url>http://172.17.5.170/web/Article/column.htm</url>
181 <title>栏目查看</title>
182 <target>_blank</target>
183 <name>栏目查看</name>
184 </link>
185 <link>
186 <id>27</id>
187 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=24</url>
188 <title>Novel</title>
189 <target>_blank</target>
190 <name>Novel</name>
191 </link>
192 <link>
193 <id>28</id>
194 <url>http://172.17.5.170/web/Article/searchArticle.aspx</url>
195 <title>文章搜索</title>
196 <target>_blank</target>
197 <name>文章搜索</name>
198 </link>
199 <link>
200 <id>29</id>
201 <url>http://172.17.5.170/web/blog/course.htm</url>
202 <title>个人Blog</title>
203 <target>_blank</target>
204 <name>个人Blog</name>
205 </link>
206 <link>
207 <id>30</id>
208 <url>http://172.17.5.170/web/contract.aspx</url>
209 <title>联系我们</title>
210 <target>_blank</target>
211 <name>联系我们</name>
212 </link>
213 <link>
214 <id>31</id>
215 <url>http://172.17.5.170/web/Article/default.aspx</url>
216 <title>文章系统</title>
217 <target>parent</target>
218 <name>文章系统</name>
219 </link>
220 <link>
221 <id>32</id>
222 <url>http://172.17.5.170/web/Article/ViewColumn.aspx?Colid=35</url>
223 <title>Linux系统</title>
224 <target>_blank</target>
225 <name>Linux</name>
226 </link>
227</links>