110,533
社区成员
发帖
与我相关
我的任务
分享
protected void TreeView_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
CheckedNodes(e.Node);
}
private void CheckedNodes(TreeNode selectedNode)
{
foreach (TreeNode childNode in selectedNode.ChildNodes)
{
if (selectedNode.Checked)
childNode.Checked = true;
else
childNode.Checked = false;
if (childNode.ChildNodes.Count > 0)
CheckedNodes(childNode);
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.TreeView.Attributes.Add("onclick", "postBackByCheckBox()");
}
}
<script>
function postBackByCheckBox() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
__doPostBack("", "");
}
}
</script>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default7 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.BiudTree();
//MessageBox.ShowConfirm(this,"abc");
}
}
protected DataTable BindTestData()
{
//模拟出一些原始数据绑定DataGrid
DataTable dt1 = new DataTable("Table1");
dt1.Columns.Add("ts_bm_id");
dt1.Columns.Add("TS_BM_Pid");
dt1.Columns.Add("ts_bm_name");
dt1.Rows.Add(new object[] { 1, 0,"软件公司" });
dt1.Rows.Add(new object[] { 2, 1, "日本总公司"});
dt1.Rows.Add(new object[] { 3, 1, "大连分公司" });
dt1.Rows.Add(new object[] { 4, 2, "日本财务部" });
dt1.Rows.Add(new object[] { 5, 2, "日本销售部" });
dt1.Rows.Add(new object[] { 6, 3, "大连开发部" });
dt1.AcceptChanges();
return dt1;
}
private void BiudTree()
{
DataTable dt = BindTestData();
this.LstBM.Items.Clear();
DataRow[] drs = dt.Select("TS_BM_Pid= " + 0);
foreach (DataRow r in drs)
{
string nodeid = r["ts_bm_id"].ToString();
string text = r["ts_bm_name"].ToString();
text = "╋" + text;
this.LstBM.Items.Add(new ListItem(text, nodeid));
int sonparentid = int.Parse(nodeid);
string blank = "├";
BindNode(sonparentid, dt, blank);
}
this.LstBM.DataBind();
}
private void BindNode(int parentid, DataTable dt, string blank)
{
DataRow[] drs = dt.Select("TS_BM_Pid= " + parentid);
foreach (DataRow r in drs)
{
string nodeid = r["ts_bm_id"].ToString();
string text = r["ts_bm_name"].ToString();
text = blank + "『" + text + "』";
this.LstBM.Items.Add(new ListItem(text, nodeid));
int sonparentid = int.Parse(nodeid);
string blank2 = blank + "─";
BindNode(sonparentid, dt, blank2);
}
}
}