.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
<%@ 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

cs:
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11
using System.Data.SqlClient;
12
using System.Xml;
13
14
15
namespace 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
using System;2
using System.Collections;3
using System.ComponentModel;4
using System.Data;5
using System.Drawing;6
using System.Web;7
using System.Web.SessionState;8
using System.Web.UI;9
using System.Web.UI.WebControls;10
using System.Web.UI.HtmlControls;11
using System.Data.SqlClient;12
using System.Xml;13

14

15
namespace test3516
{17
/// <summary>18
/// WebForm5 的摘要说明。19
/// </summary>20
public class WebForm5 : System.Web.UI.Page21
{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
///绑定DDL87
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
///绑定DDL115
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
else128
{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
//1315
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
//2321
XmlNode node2 = doc.CreateNode(XmlNodeType.Element,"url",null);322
node2.InnerText = "";323
elem.AppendChild(node2);324

325
//3326
XmlNode node3 = doc.CreateNode(XmlNodeType.Element,"title",null);327
node3.InnerText = "";328
elem.AppendChild(node3);329

330
//4331
XmlNode node4 = doc.CreateNode(XmlNodeType.Element,"target",null);332
node4.InnerText = "";333
elem.AppendChild(node4);334

335
//5336
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>
<?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>


浙公网安备 33010602011771号