2013-04-12 50 views
1

我有一個頁面,JQGrid綁定到SqlDataSource1和Label綁定到SqlDataSource2。兩個SqlDataSources都從同一個表中進行選擇,第一個選擇所有記錄,第二個只返回JQGrid中SelectedRow的一條記錄。 Label的Text屬性綁定到該記錄中的一個字段的值。所有工作正常,但是當我點擊JQGrid中的編輯按鈕並在打開的對話框中編輯選定的記錄時,關閉對話框後,我想要更新我的標籤中的編輯值。但JQGrid事件RowEdited不會導致回發。請幫我解決一下這個。ASP.NET WinForms C# - 如何更新JQGrid中編輯值的標籤

回答

0

隨着@馬克的幫助我解決這個問題,這裏是例如我使用的jqGrid處理的LoadComplete客戶端事件javacript(jQuery的)功能:

<script type="text/javascript"> 
    function LoadComplete(data) { 
     if (data == null) return; 
     var selectedRowId = '<%=(Session["SelectedRow"] == null)?string.Empty:Session["SelectedRow"].ToString()%>'; 
     if (selectedRowId == '') return; 
     var rows = $.map(data.rows, function (value) { 
      return (value.id == selectedRowId) ? value : null; 
     }); 
     var selectedRow = rows[0]; 
     var id = selectedRow.cell[0]; 
     var name = selectedRow.cell[1]; 
     var surname = selectedRow.cell[2]; 
     $('#<%= this.lblName.ClientID %>').html(name); 
     $('#<%= this.lblSurname.ClientID %>').html(surname); 
    } 
</script> 
1

我沒有看到RowEdited事件作爲編輯行文檔的一部分,但會有其他事件可以調用來更新您的標籤。

跳到我身上的是餘波函數調用,您可以在無需調用服務器來更新標籤的情況下設置該值。

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow

如果你想使用表格編輯,那麼你可以扎入調用來更新您的標籤的afterComplete功能。這是非常好的,因爲在對標籤進行更改之前,您可以得到肯定的確認,將其編輯保存爲afterComplete函數的一部分。

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing

+0

很酷,但等等,你打算如何通過服務器端事件做回發? – Mark

+0

我更新了答案以反映表單編輯解決方案。 – Mark

+0

這是我的主要問題。我不知道該怎麼做。我將在客戶端更新標籤,但我不知道在編輯對話框關閉後觸發的事件。 –