aspxgridview CustomButtonCallback 不支持弹出消息提示解
AspxGridview是DevExpress公司的一款强大的Grid控件,使用起来体验极佳。近期在CustomButtonCallback事件中遇到了使用response.write的限制问题。由于CustomButtonCallback事件是无刷新的,因此不支持response.write的使用。尽管尝试使用ScriptManager.RegisterClientScriptBlock方法也未能解决问题。
在深入研究后,从官方渠道获得了一种解决方法。原本的思路是在CustomButtonCallback事件处理器中抛出一个异常,然后在CallbackError事件处理器中处理这个异常。但是实际操作中,发现当抛出异常时,后台会直接报错,这种方法并不适用。
最终,在官方网站上找到了更为合适的解决方案。主要的改变在于如何通过ASPxGridView控件的JSProperties来传递信息。在CustomButtonCallback事件中,通过判断按钮ID和行数据,设置JSProperties中的cpErrorMsg属性,然后在前端通过EndCallBack函数来读取这个信息并显示。值得注意的是,JSProperties的参数必须以小写"cp"开头。
以下是具体的代码实现:
后端代码(C):
```csharp
protected void ASPxGridView1_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
{
ASPxGridView view = sender as ASPxGridView;
if (e.ButtonID == "btnAudit")
{
int id = 0;
int.TryParse(view.GetRowValues(e.VisibleIndex, "id").ToString(), out id);
if (/你的审核逻辑/)
{
view.JSProperties["cpErrorMsg"] = "审核成功!";
view.DataBind();
}
else
{
view.JSProperties["cpErrorMsg"] = "此单据已经审核!";
}
}
}
```
前端代码(JavaScript):
```javascript
function EndCallBack(s, e)
{
if (s.cpErrorMsg != "")
{
alert(s.cpErrorMsg);
}
}
```
经过测试,这个方法确实可行。通过JSProperties在后台和前端之间传递信息,成功地解决了在CustomButtonCallback事件中使用response.write的问题。希望这个解决方案能对遇到类似问题的朋友有所帮助。
编程语言
- aspxgridview CustomButtonCallback 不支持弹出消息提示解
- JS实现二维数组横纵列转置的方法
- CentOS 7.0下使用yum安装mysql的方法详解
- .NET的file文件上传控件使用方法 修改web.config文件
- 详解Vue源码之数据的代理访问
- Windows10下mysql 8.0.16 安装配置方法图文教程
- JavaScript实现九九乘法表的简单实例
- php延迟静态绑定实例分析
- JavaScript中的对象序列化介绍
- js Date()日期函数浏览器兼容问题解决方法
- ASP.NET中Literal控件的使用方法 -font color=red-原创
- Laravel 读取 config 下的数据方法
- 详解Vue.js Mixins 混入使用
- php处理文件的小例子(解压缩,删除目录)
- js实现汉字排序的方法
- PHP简单获取网站百度搜索和搜狗搜索收录量的方