在ASPXGridview更新事件Callback之后执行jquery

时间:2011-03-24 20:08:03

标签: jquery devexpress

您好我正在使用DevExpress gridview和更新的事件我必须返回最终用户对话框消息,其中包含有关更新记录的信息

protected void AspxGrid_RowUpdated(object sender, ASPxDataUpdatedEventArgs e)
        {

//After updated return some info on client side as modal window for example
}

是否有任何内置功能可以实现所需的输出,或任何其他足够的方法来实现它?

3 个答案:

答案 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文章。我希望它会对你有所帮助。