ASP.NET WinForms C# - 如何更新JQGrid中编辑值的标签
问题描述:
我有一个页面,JQGrid绑定到SqlDataSource1和Label绑定到SqlDataSource2。两个SqlDataSources都从同一个表中进行选择,第一个选择所有记录,第二个只返回JQGrid中SelectedRow的一条记录。 Label的Text属性绑定到该记录中的一个字段的值。所有工作正常,但是当我点击JQGrid中的编辑按钮并在打开的对话框中编辑选定的记录时,关闭对话框后,我想要更新我的标签中的编辑值。但JQGrid事件RowEdited不会导致回发。请帮我解决一下这个。ASP.NET WinForms C# - 如何更新JQGrid中编辑值的标签
答
随着@马克的帮助我解决这个问题,这里是例如我使用的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>
答
我没有看到RowEdited事件作为编辑行文档的一部分,但会有其他事件可以调用来更新您的标签。
跳到我身上的是余波函数调用,您可以在无需调用服务器来更新标签的情况下设置该值。
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
我更新了答案以反映表单编辑解决方案。 – Mark
这是我的主要问题。我不知道该怎么做。我将在客户端更新标签,但我不知道在编辑对话框关闭后触发的事件。 –