1

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

4

2 回答 2

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

于 2013-04-12T12:11:24.730 回答
0

在@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>
于 2013-04-15T08:45:01.350 回答