ASP.. NET WinForms c# -如何用JQGrid中编辑的值更新Label
本文关键字:编辑 Label 更新 JQGrid 何用 WinForms NET ASP | 更新日期: 2023-09-27 18:08:55
我有一个页面,JQGrid绑定到SqlDataSource1, Label绑定到SqlDataSource2。两个sqldatasource都从同一个表中进行选择,第一个选择所有记录,第二个只返回JQGrid中的SelectedRow记录。Label的Text属性绑定到该记录中的一个字段的值。一切都很好,但是当我单击JQGrid中的编辑按钮并在打开的对话框中编辑所选记录时,然后在对话框关闭后,我也想在我的标签中更新编辑值。但是JQGrid事件RowEdited不会引起回发。
我没有看到RowEdited事件作为编辑行文档的一部分,但是您可以调用其他事件来更新标签。
引起我注意的是aftersave函数调用,你可以在不调用服务器来更新标签的情况下设置值。
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的帮助下,我解决了这个问题,这里是javscript (jquery)函数的示例,我使用它来处理JQGrid的LoadComplete客户端事件:
<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>