2012-05-21 52 views
0

我可以在GridView的SelectedIndexChanged事件上調用JS函數嗎? 我提到這2個SO帖子 - Post 1Post 2解決這個問題,但他們沒有幫助。GridView OnSelectedIndexChanged調用JavaScript函數

我試圖

OnSelectedIndexChanged="selectedindexchanged()" 

然而,作爲回報我收到 -

'ASP.default_aspx' does not contain a definition for 'selectedindexchanged' and no 
extension method 'selectedindexchanged' accepting a first argument of type 
'ASP.default_aspx' could be found (are you missing a using directive or an 
assembly reference?) 

任何人都可以確認是否可以做到這一點,如果能以正確的方式做到這一點?

回答

2

OnSelectedIndexChanged是一個server event,而不是一個javascript事件。

服務器控件GridView不允許使用開箱即用的javascript方法。

您需要對其進行擴展並創建此類方法,或使用其他可用作第三方的Grid Control。


你能做什麼,讓你在代碼中不亂樣,就是使用jQuery,例如,掛鉤到所有行,並點擊該行的東西時,觸發一個事件,持有退貨(將表格提交回服務器)。

爲此,您需要查看輸出HTML是什麼,並從那裏開始。

這是的,我搬到了MVC,而不是繼續使用的WebForms,MVC中你有什麼發生在你的頁面總量控制很多功能之一,你可以自己而不用知道這樣的事情做的一切。

0

使用行數據綁定事件綁定您的Java腳本函數,

protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       DataRowView drv = (DataRowView)e.Row.DataItem; 
       e.Row.Attributes.Add("onclick", "selectedindexchanged()"); 
      } 
     } 

現在,當你點擊一個網格視圖行時,selectedindexchanged將被調用。