繁体   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