aspxgridview CustomButtonCallback 不支持弹出消息提示解决方法_实用技巧

aspxgridveiw是devexpress的一个grid控件,使用起来还不错。但是今天遇到一个问题,就是不能再 CustomButtonCallback 事件中使用response.write,因为CustomButtonCallback 事件是无刷新的,所以不支持,但是即使使用ScriptManager.RegisterClientScriptBlock(page, page.GetType(), "MyScript", myScript, true)也无济于事,在网上查了很久,官方有个解决办法,原文如下:
Hi Troy;
To provide this functionality you should throw an exception in the CustomButtonCallback event handler and process this exception in the CallbackError event handler. Here is the simple sample:

复制代码 代码如下:

protected void ASPxGridView1_CustomButtonCallback(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewCustomButtonCallbackEventArgs e)
{
throw new Exception("Here I am!");
}

复制代码 代码如下:

if (e.message == 'Here I am!')
{
clientErrorImage.SetVisible(true);
}

If this answer is incomplete or I misunderstood your requirements, please let me know.
Thanks
Kate.
但是实际测试中发现了问题, throw 的时候后台直接抛出错误了,,这个方法也行不通,再找。。。
最终还是在官网上找到了解决方案,原文地址,我的代码如下:

复制代码 代码如下:

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 (true)
{
view.JSProperties["cpErrorMsg"] = "审核成功!";
view.DataBind();
}
else
{
view.JSProperties["cpErrorMsg"] = "此单据已经审核!";
}
}
}

复制代码 代码如下:

function EndCallBack(s, e) {
if (s.cpErrorMsg!="") {
alert(s.cpErrorMsg);
}
}

这里要注意:JSProperties的参数必须以小写"cp"开头。
测试通过,呵呵

时间: 2024-10-25 20:44:34

aspxgridview CustomButtonCallback 不支持弹出消息提示解决方法_实用技巧的相关文章

在ASP.NET中实现弹出日历的具体方法_实用技巧

ctlCalendar.ascx的源代码: 复制代码 代码如下: <%@ Control Language="c#" AutoEventWireup="false" Codebehind="ctlCalendar.ascx.cs" Inherits="calendar.ctlCalendar" TargetSchema="http://schemas.microsoft.com/intellisense/ie5

ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法_实用技巧

ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能. 这就需要借用客户端的onchange事件,调用__doPostBack方法来用LinkButton的OnClick事件模拟一个事件触发的过程,具体代码如下: 客户端: <asp:FileUpload ID="fuPhoto" onchange="javascript:__doPostBack('lbUploadPhoto','')" r

关于服务器或虚拟主机不支持 AjaxPro 的问题终极解决方法_实用技巧

方法为:在网站属性中 -->> 主目录 -->>配置 -->> 添加一个 .ashx 文件的映射 就可以了 , 映射的文件路径在:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 扩展名: .ashx 动作:GET,HEAD,POST,DEBUG 检查文件是否存在的勾去掉 首先要在Web.config的<system.web>中添加下面的东东 <httpHandlers>

.net 弹出消息框后导致页面样式变乱解决方法_实用技巧

点击按钮,执行提交操作,弹出消息框后,页面的样式变乱,解决方法: 首先,确定使用的css样式正确,页面中的宽高值保持规范统一: 然后,弹出框避免使用Response.Write(),如下所示 复制代码 代码如下: Response.Write("<script language=javascript>"); Response.Write("window.alert('"); Response.Write("计划添加失败!"); Res

.net 刷新页面后弹出重试框的解决方法_实用技巧

关闭模式窗口后,需要刷新父页面,但是模式窗口关闭后,父页面总是会弹出"重试"消息框,如下图所示:   解决方法:在父页面的form标签中,添加属性 method="get" ,将post修改为get,这样父页面刷新的时候就不会再弹出"重试"框了

对GridView的行加颜色并弹出Kindeditor的实现思路_实用技巧

前台代码: 复制代码 代码如下: <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript"> function tureDelete() { if (c

asp.net 弹出警告窗口实现代码_实用技巧

复制代码 代码如下: /// <summary> /// 提供一个可选"是""否"的弹出窗口,若选是,则跳到url1,选否则跳到url2 /// </summary> /// <param name="strMsg"></param> /// <param name="url1">选"是"</param> /// <param n

asp.net运行提示未将对象引用设置到对象的实例错误解决方法_实用技巧

未将对象引用设置到对象的实例 一.网络上的一般说法 1.ViewState对象为Null. 2.DateSet空. 3.sql语句或Datebase的原因导致DataReader空. 4.声明字符串变量时未赋空值就应用变量. 5.未用new初始化对象. 6.Session对象为空. 7.对控件赋文本值时,值不存在. 8.使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值. 9.使用FindControl时,控件不存在却没有做预处理. 10.重复定义造成未

asp.net中提示该行已属于另一个表的解决方法_实用技巧

复制代码 代码如下: DataTable dt = new DataTable();dt = ds.Tables["All"].Clone();//克隆All的结构传递给dtDataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //通过条件得到符合条件的行for(int i=0;i<dr.Length;i++){//将数组元素加入表...dt.Rows.Add(dr[i]