[英]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
方法,因為它為我提供了有關該特定節點是否可以刪除,是否啟用等的值。
所以有什么辦法可以做到以下幾點:
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.