这个事件不会主动postback,需要手动写javascript触发。对网上找到的方法做了些改进,增加UpdatePanel,以免页面不停的刷。这里就不考虑性能神马的了,因为既然项目已经允许选择使用TreeView服务器控件了,也就不要在乎多一个UpdatePanel了。
前台页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
< html >
< head runat = "server" >
< title ></ title >
< script type = "text/javascript" >
function postBackByObject() {
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox") {
//第一个参数写UpdatePanel的ID,否则就是整个页面刷了
__doPostBack("UpdatePanel1", "");
}
}
</ script >
</ head >
< body >
< form id = "form1" runat = "server" >
< asp:ScriptManager ID = "ScriptManager1" runat = "server" >
</ asp:ScriptManager >
< asp:UpdatePanel ID = "UpdatePanel1" runat = "server" >
< ContentTemplate >
< asp:TreeView runat = "server" ID = "treeView1"
OnTreeNodeCheckChanged = "treeView1_TreeNodeCheckChanged" >
</ asp:TreeView >
</ ContentTemplate >
</ asp:UpdatePanel >
</ form >
</ body >
</ html >
|
后台页面
1
2
3
4
5
6
7
|
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
treeView1.Attributes.Add( "onclick" , "postBackByObject()" );
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/David-Huang/p/3857295.html