62,046
社区成员
发帖
与我相关
我的任务
分享
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TreeTest.aspx.cs" Inherits="test.WebForm3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function selectCheck() {
var els = event.srcElement; //获取当前事件的对象
if (els.type == 'checkbox') {
var divId = els.id.replace('CheckBox', 'Nodes'); //获取子节点的层Id
var divObj = document.getElementById(divId); //获取层对象
if (divObj != null) {
var checkBoxs = divObj.getElementsByTagName('input'); //获取层下所有input 控件
for (var i = 0; i < checkBoxs.length; i++) {
if (checkBoxs[i].type == 'checkbox') //控件为checkbox
{
checkBoxs[i].checked = els.checked; //设置复选框状态
}
}
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" onclick="selectCheck()"
ShowLines="True">
</asp:TreeView>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace test
{
public partial class WebForm3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
protected void BindData()
{
DataTable newdtb = new DataTable();
newdtb.Columns.Add("Id", typeof(int));
newdtb.Columns.Add("ProName", typeof(string));
newdtb.Columns.Add("ProPrice", typeof(decimal));
newdtb.Columns["Id"].AutoIncrement = true;
for (int i = 1; i < 3; i++)
{
DataRow newRow = newdtb.NewRow();
newRow["ProName"] = "pro" + i.ToString();
newRow["ProPrice"] = 12.3m;
newdtb.Rows.Add(newRow);
}
for (int i = 0; i < newdtb.Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.Text = newdtb.Rows[i]["ProName"] + "=====" + newdtb.Rows[i]["ProPrice"];
TreeView1.Nodes.Add(node);
BindTreeChildNodes(node, newdtb);
}
TreeView1.ExpandDepth = 1;
}
protected void BindTreeChildNodes(TreeNode chNode, DataTable dt)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.Text = dt.Rows[i]["ProName"] + "=====" + dt.Rows[i]["ProPrice"];
chNode.ChildNodes.Add(node);
BindTreeChildNodesCh(node, dt);
}
}
protected void BindTreeChildNodesCh(TreeNode chNode, DataTable dt)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.Text = dt.Rows[i]["ProName"] + "=====" + dt.Rows[i]["ProPrice"];
chNode.ChildNodes.Add(node);
}
}
}
}