觸發TreeView的TreeNodeCheckChanged事件


  這個事件不會主動postback,需要手動寫javascript觸發。對網上找到的方法做了些改進,增加UpdatePanel,以免頁面不停的刷。這里就不考慮性能神馬的了,因為既然項目已經允許選擇使用TreeView服務器控件了,也就不要在乎多一個UpdatePanel了。

  • 前台頁面
     1 <html>
     2 <head runat="server">
     3     <title></title>
     4 
     5     <script type="text/javascript">
     6         function postBackByObject() {
     7             var o = window.event.srcElement;
     8             if (o.tagName == "INPUT" && o.type == "checkbox") {
     9                 //第一個參數寫UpdatePanel的ID,否則就是整個頁面刷了
    10                 __doPostBack("UpdatePanel1", "");
    11             }
    12         }
    13     </script>
    14 
    15 </head>
    16 <body>
    17     <form id="form1" runat="server">
    18         <asp:ScriptManager ID="ScriptManager1" runat="server">
    19         </asp:ScriptManager>
    20         <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    21             <ContentTemplate>
    22                 <asp:TreeView runat="server" ID="treeView1"
    23                     OnTreeNodeCheckChanged="treeView1_TreeNodeCheckChanged">
    24                 </asp:TreeView>
    25             </ContentTemplate>
    26         </asp:UpdatePanel>
    27     </form>
    28 </body>
    29 </html>
  • 后台頁面
    1     protected void Page_Load(object sender, EventArgs e)
    2     {
    3         if (!IsPostBack)
    4         {
    5             treeView1.Attributes.Add("onclick", "postBackByObject()");
    6         }
    7     }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM