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

时间:2013-04-12 12:02:49

标签: c# asp.net jqgrid

我有一个页面,其中JQGrid绑定到SqlDataSource1,Label绑定到SqlDataSource2。两个SqlDataSource都从同一个表中选择,第一个选择所有记录,第二个只返回一个JQGrid中SelectedRow的记录。 Label的Text属性绑定到该记录中一个字段的值。一切正常,但是当我点击JQGrid中的编辑按钮并在打开的对话框中编辑所选记录时,关闭对话框后,我也想更新我的标签中的编辑值。但是JQGrid事件RowEdited不会导致回发。请帮帮我。

2 个答案:

答案 0 :(得分:1)

我没有看到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

答案 1 :(得分:0)

在@Mark的帮助下我解决了这个问题,这里是我用来处理JQGrid的LoadComplete客户端事件的javascript(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>