2014-08-28 166 views
0

我有一個gridview,其中所有的列都是文本框。我通過jQuery實現了文本框上的onclick函數,以便當用戶單擊文本框時,會單擊一個隱藏按鈕,然後更新一個updatepanel並重新加載頁面。此外,文本框應該是可編輯的。我的問題是,每次單擊文本框進行編輯並重新加載頁面時,都會觸發該功能。如何預防它?允許onclick函數只執行一次

這裏是我的文本框代碼:

注:這是一個文本框只是代碼。所有的文本框都使用相同的onclick功能可按

<asp:TextBox ID="txtLoginName" Onclick='<%# "timepass(" + Eval("userid") + ");" %>' 
Text='<%# Eval("LoginName")%>' runat="server"></asp:TextBox> 

,這裏是觸發後面的功能代碼

<script type="text/javascript"> 
     function timepass(pass) { 
      $("#btnHidden").trigger("click"); 
     } 
    </script> 

我想與一個隱藏的列進去值會更改的gridview的jQuery代碼每次單擊一個文本框,但由於該行中有許多文本框,因此它變得越來越複雜,因此看起來不可行。任何人都可以提出更好的選擇嗎

+0

你應該以某種方式記住,文本框被點擊 – 2014-08-28 12:56:06

+0

什麼是側板的用途樣品。它是什麼更新。此外,爲什麼需要在單擊文本框時發生此更新。 – PaulBinder 2014-08-28 13:03:14

+0

@PaulBinder當點擊文本框時,還有2個gridview填充。在點擊文本框時傳遞一個id,在兩個gridviews中填充詳細信息 – nitinvertigo 2014-08-28 13:06:59

回答

0

爲了避免頁面刷新,您可以簡單地使用Ajax調用。

function ajaxCall(passedId){ 
    $.post('url', { id: ajaxCall}, 
     function(returnedData){ 
      console.log(returnedData); 
      //update grid view with complex javascript 
     }); 
    } 

然後,你可以簡單地使用的賽義的綁定代碼修改後的版本

$("yourselector").click(function(event) { 
    var eventId = event.target.id; 
    ajaxCall(eventId); 
    $("#" + eventId).unbind("click", handler);; 
}); 

此結合到所有的文本框,但沒有綁定到特定的文本框中。此外,根據您使用的gridview類型,某些第三方網格like jQuery Grid允許您將JSON對象綁定到它們。

它綁定到一個jQuery網格

$.post('url', { id: "value" }, 
    function (returnedData) { 
     console.log(returnedData); 
     var source = 
     { 
      datatype: "json", 
      datafields: [ 
       { name: 'CompanyName' }, 
       { name: 'ContactName' }, 
       { name: 'ContactTitle' }, 
       { name: 'Address' }, 
       { name: 'City' }, 
       { name: 'Country' } 
      ], 
      localdata: data 
     }; 
     var dataAdapter = new $.jqx.dataAdapter(returnedData); 
     $("#jqxgrid").jqxGrid(
     { 
      source: dataAdapter, 
      columns: 
      [ 
       { text: 'Company Name', datafield: 'CompanyName', width: 250 }, 
       { text: 'Contact Name', datafield: 'ContactName', width: 150 }, 
       { text: 'Contact Title', datafield: 'ContactTitle', width: 180 }, 
       { text: 'City', datafield: 'City', width: 120 }, 
       { text: 'Postal Code', datafield: 'PostalCode', width: 90 }, 
       { text: 'Country', datafield: 'Country', width: 100 } 
      ] 
     }); 
    }); 
+0

嗨,Ajax調用對我來說不可行,因爲我在這個gridview下的更新面板中有兩個gridview(不是在後面的代碼中創建的) 。使用Ajax意味着使用靜態webmethods,並使該方法填充gridview方式太複雜。我也會保留你的方法作爲選項,但我正在尋找更簡單的方法 – nitinvertigo 2014-08-28 14:02:21