簡體   English   中英

ASP.NET WinForms C#-如何使用在JQGrid中編輯的值更新Label

[英]ASP.NET WinForms C# - How to update Label with value edited in JQGrid

我有一個頁面,其中JQGrid綁定到SqlDataSource1,而Label綁定到SqlDataSource2。 兩個SqlDataSources都從同一表中選擇,第一個選擇所有記錄,第二個僅返回一個記錄,該記錄在JQGrid中為SelectedRow。 Label的Text屬性綁定到該記錄的一個字段的值。 一切正常,但是當我單擊JQGrid中的“編輯”按鈕並在打開的對話框中編輯所選記錄時,然后在對話框關閉后,我也想更新“標簽”中的已編輯值。 但是JQGrid事件RowEdited不會引起回發。 請幫我解決一下這個。

我沒有將RowEdited事件視為編輯行文檔的一部分,但還有其他事件可以調用以更新標簽。

讓我大吃一驚的是aftersavefunction調用,您可以在其中設置值而不必調用服務器來更新標簽。

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

在@Mark的幫助下,我解決了這個問題,這是我用來處理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>

暫無
暫無

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

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