温馨提示:代码在线浏览功能只能做为源码浏览参考,不能展示项目的全部,如果想更进一步了解该代码请下载:漂亮无限级分类源代码(三层实现)
当前文件路径:JohnTree/JohnTree.Web/Default.aspx.cs

1using System; 2
using System.Data; 3
using System.Configuration; 4
using System.Collections; 5
using System.Web; 6
using System.Web.Security; 7
using System.Web.UI; 8
using System.Web.UI.WebControls; 9
using System.Web.UI.WebControls.WebParts; 10
using System.Web.UI.HtmlControls; 11
12
using JohnTree.Library; 13
using JohnTree.Library.Bll; 14
using JohnTree.Library.Model; 15
16
namespace JohnTree.Web 17
...{ 18
public partial class _Default : System.Web.UI.Page 19
...{ 20
ConClassInfo model = new ConClassInfo(); 21
22
ClassKind属性#region ClassKind属性 23
protected int ClassKind 24
...{ 25
get 26
...{ 27
return (int)ViewState["ClassKind"]; 28
} 29
set 30
...{ 31
ViewState["ClassKind"] = value; 32
} 33
} 34
#endregion 35
36
protected void Page_Load( object sender, EventArgs e ) 37
...{ 38
if (!IsPostBack) 39
...{ 40
this.ClassKind = Convert.ToInt32(Request.QueryString["ClassKind"]); 41
BindData(); 42
} 43
} 44
45
数据绑定#region 数据绑定 46
private void BindData() 47
...{ 48
49
this.btnAdd.Attributes.Add("onclick", "return ChkInput()"); 50
this.btnEdit.Attributes.Add("onclick", "return ChkInput()"); 51
52
DataSet ds = new IConClass().GetClassList(this.ClassKind); 53
54
this.rptMenuList.DataSource = ds.Tables[0].DefaultView; 55
this.rptMenuList.DataBind(); 56
57
this.DdlMenu.Items.Clear(); 58
this.DdlMenu.Items.Add(new ListItem("添加为根栏目", "0")); 59
foreach (DataRow dr in ds.Tables[0].Rows) 60
...{ 61
int ClassTj = Convert.ToInt32(dr["ClassTj"]); 62
string ClassId = dr["ClassId"].ToString().Trim(); 63
string ClassName = dr["ClassName"].ToString().Trim(); 64
65
if (ClassTj == 1) 66
...{ 67
this.DdlMenu.Items.Add(new ListItem(ClassName, ClassId)); 68
69
} 70
else 71
...{ 72
ClassName = "├ " + ClassName; 73
ClassName = StringHelper.StringOfChar(ClassTj - 1, " ") + ClassName; 74
75
this.DdlMenu.Items.Add(new ListItem(ClassName, ClassId)); 76
} 77
} 78
79
} 80
#endregion 81
82
添加按钮操作#region 添加按钮操作 83
protected void btnAdd_Click( object sender, EventArgs e ) 84
...{ 85
string ClassId = StringHelper.GetRamCode(); //栏目ID 86
string ClassName = this.txtClassName.Text.Trim(); //栏目名称 87
string ClassList = ""; //栏目包含列表 88
string ClassPre = this.DdlMenu.SelectedValue.Trim(); //上一级目录 89
int ClassTj = 1; //栏目深度 90
91
if (ClassPre == "0") 92
...{ 93
ClassList = ClassId + ","; 94
ClassTj = 1; 95
} 96
else 97
...{ 98
DataSet ds = new IConClass().GetClassListByClassId(ClassPre); 99
100
if (ds.Tables[0].Rows.Count > 0) 101
...{ 102
DataRow dr = ds.Tables[0].Rows[0]; 103
ClassList = dr["ClassList"].ToString().Trim() + ClassId + ","; 104
ClassTj = Convert.ToInt32(dr["ClassTj"]) + 1; 105
} 106
} 107
model.ClassId = ClassId; 108
model.ClassName = ClassName; 109
model.ClassList = ClassList; 110
model.ClassPre = ClassPre; 111
model.ClassTj = ClassTj; 112
model.ClassKind = this.ClassKind; 113
if (new IConClass().ClassAdd(model)) 114
...{ 115
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('栏目添加成功!')", true); 116
} 117
else 118
...{ 119
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('栏目添加操作失败!')", true); 120
} 121
this.txtClassName.Text = ""; 122
BindData(); 123
} 124
#endregion 125
126
保存栏目信息#region 保存栏目信息 127
protected void btnEdit_Click( object sender, EventArgs e ) 128
...{ 129
this.btnEdit.Visible = false; 130
this.btnAdd.Visible = true; 131
string ClassId = this.HidClassId.Value.Trim(); 132
string ClassName = this.txtClassName.Text.Trim(); 133
string ClassList = ""; //栏目包含列表 134
string ClassPre = this.DdlMenu.SelectedValue.Trim(); //上一级目录 135
int ClassTj = 1; //栏目深度 136
137
if (ClassPre == "0") 138
...{ 139
ClassList = ClassId + ","; 140
ClassTj = 1; 141
} 142
else 143
...{ 144
DataSet ds = new IConClass().GetClassListByClassId(ClassPre); 145
146
if (ds.Tables[0].Rows.Count > 0) 147
...{ 148
DataRow dr = ds.Tables[0].Rows[0]; 149
ClassList = dr["ClassList"].ToString().Trim() + ClassId + ","; 150
ClassTj = Convert.ToInt32(dr["ClassTj"]) + 1; 151
} 152
} 153
model.ClassId = ClassId; 154
model.ClassName = ClassName; 155
model.ClassList = ClassList; 156
model.ClassPre = ClassPre; 157
model.ClassTj = ClassTj; 158
if (new IConClass().ClassSave(model)) 159
...{ 160
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('栏目保存成功!')", true); 161
} 162
else 163
...{ 164
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('栏目保存操作失败!')", true); 165
} 166
this.txtClassName.Text = ""; 167
BindData(); 168
} 169
#endregion 170
171
显示数据处理#region 显示数据处理 172
protected void rptMenuList_ItemDataBound( object sender, RepeaterItemEventArgs e ) 173
...{ 174
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) 175
...{ 176
Literal LitFirst = (Literal)e.Item.FindControl("LitFirst"); 177
//HyperLink LabClassNm = (HyperLink)e.Item.FindControl("LabClassNm"); 178
Label LabClassNm = (Label)e.Item.FindControl("LabClassNm"); 179
180
string LitStyle = "<span style=width:{0}px;text-align:right;display:inline-block;>{1}{2}</span>"; 181
182
string LitImg1 = "<img src=images/openfolder.gif align=absmiddle />"; 183
string LitImg2 = "<img src=images/file.gif align=absmiddle />"; 184
string LitImg3 = "<img src=images/t.gif align=absmiddle />"; 185
186
DataRowView drv = (DataRowView)e.Item.DataItem; 187
int ClassTj = Convert.ToInt32(drv["ClassTj"]); 188
189
if (ClassTj == 1) 190
...{ 191
LabClassNm.Font.Bold = true; 192
LitFirst.Text = LitImg1; 193
} 194
else 195
...{ 196
LitFirst.Text = string.Format(LitStyle, ClassTj * 20, LitImg3, LitImg2); 197
} 198
} 199
} 200
#endregion 201
202
编辑删除处理#region 编辑删除处理 203
protected void rptMenuList_ItemCommand( object source, RepeaterCommandEventArgs e ) 204
...{ 205
HiddenField txtClassId = (HiddenField)e.Item.FindControl("txtClassId"); 206
//HyperLink LabClassNm = (HyperLink)e.Item.FindControl("LabClassNm"); 207
Label LabClassNm = (Label)e.Item.FindControl("LabClassNm"); 208
switch (e.CommandName.ToLower()) 209
...{ 210
case "btnedit": 211
this.txtClassName.Text = LabClassNm.Text.Trim(); 212
this.HidClassId.Value = txtClassId.Value.Trim(); 213
this.DdlMenu.SelectedValue = new IConClass().GetPreClassId(txtClassId.Value.Trim()).Trim(); 214
this.btnAdd.Visible = false; 215
this.btnEdit.Visible = true; 216
break; 217
218
case "btndelete": 219
if (new IConClass().DelByClassId(txtClassId.Value)) 220
...{ 221
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('所选栏目删除成功!')", true); 222
} 223
else 224
...{ 225
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('删除操作失败,请与管理员联系!')", true); 226
} 227
BindData(); 228
break; 229
} 230
} 231
#endregion 232
233
列表顺序保存操作#region 列表顺序保存操作 234
/**//// <summary> 235
/// 列表顺序保存操作 236
/// </summary> 237
/// <param name="sender"></param> 238
/// <param name="e"></param> 239
protected void BtnSave_Click( object sender, EventArgs e ) 240
...{ 241
int UpSum = 0; 242
bool ReVal = true; 243
foreach (RepeaterItem RptItem in this.rptMenuList.Items) 244
...{ 245
HiddenField txtClassId = (HiddenField)RptItem.FindControl("txtClassId"); 246
TextBox txtOrder = (TextBox)RptItem.FindControl("txtOrder"); 247
try 248
...{ 249
ReVal = new IConClass().UpdateClassOrder(txtClassId.Value.Trim(), Convert.ToInt32(txtOrder.Text)); 250
} 251
catch 252
...{ 253
ReVal = false; 254
} 255
256
if (ReVal == false) 257
...{ 258
++UpSum; 259
} 260
} 261
if (UpSum == 0) 262
...{ 263
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", "alert('所有设定的栏目顺序都已保存成功!')", true); 264
} 265
else 266
...{ 267
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ajaxjs", string.Format("alert('栏目顺序部份保存成功,共有{0}条记录保存失败!')", UpSum), true); 268
} 269
BindData(); 270
} 271
#endregion 272
} <





}