2014-10-01 58 views
4

我與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

請幫我解決這個問題。 謝謝

回答

4

TreeView沒有AutoPostBack屬性。

由於每MSDN

TreeNodeCheckChanged事件引發時,發送到服務器之間的TreeView控制變化狀態的複選框。這允許您提供事件處理方法,以便在發生此事件時執行自定義例程,例如更新數據庫或顯示的內容。

您可以通過添加onclick事件來嘗試javascript來回發頁面。

參考:PostBack on selecting checkbox of treeview

+0

謝謝@vishal我想在'TreeNodeCheckChanged'上存儲'session'還有其他的方法嗎? – Gitz 2014-10-01 05:05:07

+0

@GarimaRawat這是唯一的方法。我發佈了一個上面的鏈接,通過它你可以將會話存儲在'TreeView1_TreeNodeCheckChanged'事件中,一旦回發發生就會調用它。 – 2014-10-01 05:07:49

+0

好吧@Vishal我在嘗試:) – Gitz 2014-10-01 05:08:50

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> 

添加在頁面的頭部部分JavaScript代碼之上。

onclick="javascript:postBack()" 
+0

感謝工作正常 – Gitz 2014-10-01 05:19:01

+0

很高興幫助:) @GarimaRawat – Neel 2014-10-01 05:26:32

+0

對不起,沒有標記爲回答你的問題。但我已經投了你的問題,並讚賞它:) – Gitz 2014-10-01 05:28:29