已检查树视图的更改事件不起作用

时间:2014-10-01 04:46:13

标签: c# asp.net treeview

我正在使用Treeview控件,我正在使用以下代码

  <asp:TreeView ID="tvCategories" ShowCheckBox="False" Style="font-family: Trebuchet MS;
                                    margin-top: 5px; margin-bottom: 5px; margin-left: 20px; color: Black; font-size: 12px"
                                    runat="server" ShowLines="true" NodeIndent="5" OnTreeNodeCheckChanged="tvCategories_TreeNodeCheckChanged"
                                    OnSelectedNodeChanged="tvCategories_SelectedNodeChanged">
                                    <LeafNodeStyle ForeColor="#555555" />
                                    <ParentNodeStyle ForeColor="Black" />
                                    <RootNodeStyle ForeColor="Black" />
                                </asp:TreeView>

OnTreeNodeCheckChangedOnSelectedNodeChanged都不起作用且AutoPostBack属性不适用于Treeview

请帮我解决这个问题。 谢谢

2 个答案:

答案 0 :(得分:4)

TreeView没有AutoPostBack属性。

根据MSDN

TreeNodeCheckChanged控件中的复选框在发布到服务器的帖子之间发生更改时,会引发TreeView事件。这允许您提供事件处理方法,以便在发生此事件时执行自定义例程,例如更新数据库或显示的内容。

您可以尝试使用javascript通过添加onclick事件来回发页面。

参考:PostBack on selecting checkbox of treeview

答案 1 :(得分:4)

您需要使用javascript来进行页面回发,然后才能触发treenodecheckchanged事件。

如下所示,您应该添加更大胆的代码以使页面回发:

 <script language="javascript" type="text/javascript">
     function postBack()
 {
     var element = window.event.srcElement;
     if (element .tagName == "INPUT" && element.type == "checkbox")
     {
        __doPostBack("","");
     } 
 }

</script>

在页面的head部分添加上述javascript代码。

onclick="javascript:postBack()"