簡體   English   中英

通過JavaScript從Datagrid控件觸發服務器端事件

[英]Fire server side event from Datagrid control via javascript

我有一個帶有TemplateColumn的Datagrid,其中包含一個TextBox。 當用戶在TextBox上按Enter鍵並使其具有焦點時,我想觸發服務器端事件,例如TextChanged。

為此,我在TextBox上運行了一個腳本,並在后面的代碼中注入了腳本。

txt.Attributes.Add("onkeydown", String.Format("javascript:if (event.keyCode == 13)__doPostBack('{0}', '');", txt.ClientID));

該腳本已正確附加到控件,但服務器端事件從未觸發。 定義為:

public void txt_TextChanged(object sender, EventArgs e)
{......}

我還嘗試了__doPostBack('{0}','TextChanged')。

因此,將觸發回發,但永遠不會調用該事件。

對這里可能出什么問題有任何想法嗎?

你可以這樣嘗試...

您可以使用Page對象的GetPostbackEventReference方法注冊ASP.NET服務器控件,該控件可以使用客戶端回調創建回發。

Page.GetPostBackEventReference(txt_sssn_dt);

然后,您可以使用__dPostBack事件來觸發日期選擇器控件(txt_sssn_dt)的TextChanged事件。 該代碼已放置在日期選擇器JavaScript函數中,並且每次用戶從日期選擇器中選擇一個日期時都會觸發該代碼。

__doPostBack("txt_sssn_dt", "TextChanged");

當用戶只想直接在日期選擇器(txt_sssn_dt)中鍵入日期時,還需要編寫一個簡單的JavaScript函數來處理這種情況。 您可以為此編寫一個名為DoPostBack()的JavaScript函數。

function DoPostBack()
{
   __doPostBack("txt_sssn_dt", "TextChanged");
}

您必須在日期選擇器控件的OnChange事件上調用此函數。

if(!IsPostback)
{
    /...Implementation.../ 
     /.................../
    txt_sssn_dt.Attributes.Add("OnChange", 
          "javascript:return DoPostBack()")
}

來自這里: JavaScriptAndServerEvents

暫無
暫無

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

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