Page页面 为一个TreeView页面
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>
<asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1" ShowCheckBoxes="All"
AutoPostPack="true" ShowLines="True" OnTreeNodeCheckChanged="TreeView1_OntreeNodeCheckChanged">
</asp:TreeView>
</td>
</tr>
<tr>
<td>
<asp:Button runat="server" ID="Bt_Add" Text="添加" Width="80px" Height="20px"
οnclick="Bt_Add_Click" />
</td>
</tr>
</table>
</div>
</form>
在后台的
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeView1.Attributes.Add("onclick", "postBackByObject()");
}
}
在JS脚本中添加js脚本
function postBackByObject(){
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox")
{
__doPostBack("","");
}
}
同时在TreeView事件中添加选中事件
/// <summary>
/// 添加选中事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TreeView1_OntreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
SetChildChecked(e.Node);
}
/// <summary>
/// 绑定选中的节点及子节点
/// </summary>
/// <param name="parentNode"></param>
private void SetChildChecked(TreeNode parentNode)
{
foreach (TreeNode node in parentNode.ChildNodes)
{
node.Checked = parentNode.Checked;
if (node.ChildNodes.Count > 0)
{
SetChildChecked(node);
}
}
}
这样就可在选中父节点的同时选中所有的子节点,TreeView就会绑定级联关系的节点!