| Asp编程 | PHP编程 | .Net编程 | Xml编程 | Access | Mssql | Mysql
GridView添加删除按钮终极办法
2008-05-14 13:02 来源: 网络搜集 作者:99love 网友评论 0 条 浏览次数 0

这两天用GridView,正好遇到要添加删除确认这个操作,网上搜了一通,这篇最好,为gridview“删除”列添加确认对话框 

其中提到一种方法被称为是一种最简洁的办法,果然不错,分析得也很好。

不过,我在用的过程中却遇到了哭笑不得的情况:引号的问题

<asp:CommandField EditText="修改"
CancelText="取消"
DeleteText='<span class="handle" onclick="JavaScript:return confirm("confirm_this")">删除</span>'
 
HeaderText="操作"
ButtonType="Link"
ShowEditButton="true"
ShowDeleteButton="true" />

看其中红色的部分,这部分代码是不对的,因为双引号会导致javascript错误,你想想,

<span class="handle" onclick="JavaScript:return confirm("confirm_this")">删除</span>

这四个引号能用么,不能。这里必须是一单一双的引号相间,代码才正常。

但也不能换成单引号,因为

<asp:CommandField EditText="修改" CancelText="取消" DeleteText='<span class="handle" onclick="JavaScript:return confirm('confirm_this')">删除</span>'...

因为,单引号会截断ASP.NET的代码,所以,单双引号都不能用。

不过,也有办法解决,如果doraeimo在blog中提到的方案称为最简洁,我想,下面的办法可以被称为最终极的解法,当然,这是建立在doraeimo的基础这上的。

解决方案:什么引号也有用!

<asp:CommandField
EditText="修改"
CancelText="取消"
DeleteText='<span class="handle" onclick="JavaScript:return confirm(confirm_this)">删除</span>'

HeaderText="操作"
ButtonType="Link"
ShowEditButton="true"
ShowDeleteButton="true" />

不过,要在后台中向客户端注册javascript脚本,在Page_Load事件中:

string sScript = "var confirm_this='你确定要删除吗?';";
ClientScriptManager csm = Page.ClientScript;
if (!csm.IsStartupScriptRegistered("_confirm"))
{
csm.RegisterStartupScript(this.GetType(), "_confirm", sScript, true);
}

原理很简单,效果很实用。

上一篇:解开Ajax技术中的    下一篇:AjaxPro让.NET的A

相关主题:

推荐下载

网友评论

关于我们 | 服务条款 | 隐私说明 | 意见反馈 | 业务合作 | 赞助我们 | 知识产权 | 使用帮助
CopyRight (2005-2008) | 抚州生活网 | VeryCMS 3.0 备案号:赣ICP备06005705号