您好我正在使用DevExpress gridview和更新的事件我必须返回最终用户对话框消息,其中包含有关更新记录的信息
protected void AspxGrid_RowUpdated(object sender, ASPxDataUpdatedEventArgs e)
{
//After updated return some info on client side as modal window for example
}
是否有任何内置功能可以实现所需的输出,或任何其他足够的方法来实现它?
答案 0 :(得分:3)
要将信息传递给客户端,您应该实现两个不同的步骤: 1)向ASPxGridView的JSProperties集合中添加一个新项目,该集合将包含所需的信息:
ASPxGridView1.JSProperties.Add("cpInfo", "hi from server");
2)处理ASPxGridView的客户端EndCallback事件以显示此消息:
EndCallBack = "function(s,e) {
if(typeof(s.cpInfo) != 'undefined')
alert(s.cpInfo);
}"
修改强> 以下是完整的代码:
<dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1"
KeyFieldName="CategoryID" OnRowUpdated="ASPxGridView1_RowUpdated">
<ClientSideEvents EndCallback="function(s, e) {
if(typeof(s.cpInfo) != 'undefined')
alert(s.cpInfo);
}“/&gt;
protected void ASPxGridView1_RowUpdated(object sender, DevExpress.Web.Data.ASPxDataUpdatedEventArgs e) {
(sender as ASPxGridView).JSProperties["cpInfo"] = "hi from server";
}
答案 1 :(得分:0)
您无法直接从服务器事件中导致客户端事件。但是有很多不同的方法来实现目标,最好的方法取决于具体情况。一些可能性......
1)捕获异步回发后发生的客户端事件(如果您正在使用部分回发)。 Google Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded
2)在代码中插入客户端脚本,该代码将在页面加载完成后运行,例如
ScriptManager.RegisterStartupScript("someJavascriptFunction();");
(即伪代码 - 您还需要包含其他参数)
3)在服务器事件期间呈现某些内容,该内容将在页面加载完成时触发客户端事件。假设您正在使用jQuery和$(document).ready()
(并且不使用部分回发),您可以设置隐藏字段值,然后从客户端上的启动脚本中检查该值,并根据它执行您想要的任何操作。
如果您正在使用updatepanel,则必须执行#1或#2 - 因为document.ready
启动代码在部分回发后不会重新运行。
答案 2 :(得分:0)
请参阅有关此问题的The Concept of Callbacks KB文章。我希望它会对你有所帮助。