簡體   English   中英

RadTreeView上的客戶端事件和服務器端事件沖突

[英]Client-side event and Server-side event conflict on RadTreeView

我正在使用Telerik RadTreeView ,它由onNodeClick (一個服務器端事件)和OnClientDoubleClick (一個客戶端事件)組成。 我想對model popup使用OnClientDoubleClick功能。 我面臨的問題是代碼隱藏事件與我的客戶端事件沖突。 當我雙擊treeview上的任何節點時,將運行javascript函數OnDoubleClick以及treeViewAssets_NodeClick方法,該方法會在用戶選擇服務器端的節點(單擊一次)時發生。 這是我的樹視圖控制

 <telerik:RadTreeView ID="tvAssets" runat="server" AccessKey="W" CheckBoxes="True" CheckChildNodes="True" TriStateCheckBoxes="True" OnNodeClick="tvAssets_NodeClick" OnClientDoubleClick="onDoubleClick">

我試圖停止codebehind方法,但沒有成功,它只會使treeview節點變為不可選擇狀態。 我還嘗試hiddenfields javascript的hiddenfields傳遞值,以便基於值,我可以跳過codebehind方法中的代碼,但方法后面的代碼總是檢索我在javascript函數中傳遞的空值。

 protected void tvAssets_NodeClick(object sender, RadTreeNodeEventArgs e)
    {
        string value = hdisDoubleClick.Value;
        string doubleClick = "";
            if (value == null || value == "")
            {
                doubleClick = "false";
            }                
            if (doubleClick == "True")
            {
                ModalPopupExtender1.Show();
                hdisDoubleClick.Value = "False";
                return;
            }
       //code for tvAssets_NodeClick

    }

我嘗試使用會話,視圖狀態,cookie而不是hiddenfield,但是我得到的值始終為null。 我使用也嘗試button.click()內的JavaScript函數傳遞值,但tvAssets_NodeClick上方法codebehind火災消除機會傳遞任何值。

我是編程新手,所以我一定做錯了,嘗試在發生回發時從客戶端方法獲取值..這會在Webform或類似形式中創建控件的新實例。.也許這就是為什么我得到nullexception錯誤。

我無法刪除tvAssets_NodeClick方法,因為它為我提供了有關該特定節點是否可以刪除,是否啟用等的值。

所以有什么辦法可以做到以下幾點:

  1. 當發生回發時,從客戶端傳遞值。
  2. 停止javascript中的tvAssets_NodeClick方法,以便tvAssets_NodeClick不運行,或者您可以想到的任何其他替代方法。

我的客戶端事件如下:

function onDoubleClick(sender, eventArgs) {
        document.getElementById("<%=hdisDoubleClick.ClientID %>").value = "True";           
        //document.cookie = "CookieName=True;"; 
    }

這是一個棘手的情況-您已訂閱了單擊事件(服務器端)和雙擊事件(客戶端)。

可能是您雙擊時-第一次單擊已觸發服務器端事件,並且雙擊事件處理程序的javascript代碼無法完全執行。

也許現在正是評估是否需要這兩個事件的好時機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM