JS:
<script runat="server">
void PopulateNode(Object sender, TreeNodeEventArgs e)
{
PopulateCategories(e.Node);//此处可以加一些判断条件去执行不同的方法
}
void PopulateCategories(TreeNode node)
{
DataSet ResultSet = new SysAreaMg().GetListFromView(" a.PCode='" + node.Value + "'");
if (ResultSet.Tables.Count > 0)
{
foreach (DataRow row in ResultSet.Tables[0].Rows)
{
TreeNode newNode = new TreeNode();
newNode.Text = "<font style='font-size: 12px; font-family:新宋体' >" + row["AreaName"].ToString().Trim() + "</font>";
newNode.Text += "<font style='font-size: 12px; font-family:新宋体'>[" + row["AreaCode"].ToString() + "]</font>";
newNode.Text += " <a class='FootLink' href=\"javascript:ymPrompt.win('AreaAdd.aspx?AreaCode=" + Common.UrlEncode(row["AreaCode"].ToString().Trim()) + "', 400, 220, '增加区域', null, null, null, { id: 'form1' }) \">增加区域</a>";
newNode.Text += " <a class='FootLink' href=\"javascript:ymPrompt.win('AreaEdit.aspx?AreaCode=" + Common.UrlEncode(row["AreaCode"].ToString().Trim()) + "', 400, 220, '编辑区域', null, null, null, { id: 'form1' }) \">编辑区域</a>";
newNode.Value = row["AreaCode"].ToString();
newNode.ShowCheckBox = true;//所有节点都显示多选框
if (row["childFlag"] != null && row["childFlag"].ToString() != "")//如果为叶子节点则 不需要异步加载数据事件
{
newNode.PopulateOnDemand = true;
newNode.SelectAction = TreeNodeSelectAction.Expand;
}
node.ChildNodes.Add(newNode);
}
}
}
</script>
.aspx
<asp:TreeView ID="TreeView_Area" ShowLines="True" runat="server" ExpandDepth="10"
LineImagesFolder="../Img/Tree" Style="margin-top: 0px; margin-left: 20px" Width="20px"
ShowCheckBoxes="Leaf" OnTreeNodePopulate="PopulateNode"
EnableClientScript="true">
</asp:TreeView>
.aspx.cs
//treeview基本设置
TreeView_Area.Nodes.Clear();
TreeNode node_0 = new TreeNode();
node_0.ImageUrl = "../Img/Small/s02.jpg";
node_0.Text = " 行政区划" + "<a herf='#'></a>";
node_0.Value = "32";
node_0.Text += " <a class='FootLink' href=\"javascript:ymPrompt.win('AreaAdd.aspx?AreaCode=" + Common.UrlEncode("0") + "', 400, 220, '增加区域', null, null, null, { id: 'form1' }) \">增加区域</a>";
node_0.SelectAction = TreeNodeSelectAction.Expand;//点击节点text时展开节点
node_0.PopulateOnDemand = true;//动态填充设为true
node_0.Expanded = false;//节点默认不展开
this.TreeView_Area.Nodes.Add(node_0);
//获取选择项
public string GetTreeCheck(TreeNode tn)
{
foreach (TreeNode treenode in tn.ChildNodes)
{
if (treenode.Checked)
{
string trValue = treenode.Value;
string trText = treenode.Text;
FunctionString += trValue + ",";
}
GetTreeCheck(treenode);
}
return FunctionString;
}
protected void btnDelete_Click(object sender, EventArgs e)
{
string AreaCodeAll = GetTreeCheck(TreeView_Area.Nodes[0]);
AreaCodeAll = AreaCodeAll.TrimEnd(',');
string[] AreaArrayList = AreaCodeAll.Split(',');
bool bResult = false;
if (AreaCodeAll == "")
{
Common.MessageBox(this.Page, "请选择要删除的区域选项!");
return;
}
else
{
for (int i = 0; i < AreaArrayList.Length; i++)
{
if (AreaArrayList[i].ToString().Length > 0)
{
bResult = areaMg.Delete(AreaArrayList[i].ToString().Trim());//逐条删除,可优化为集合删除
}
}
}
ShowTree();
if (bResult)
{
Common.MessageBox(this.Page, "操作成功!");
}
else
{
Common.MessageBox(this.Page, "操作失败,请重试!");
}
return;
}