一、前言
在ASP.NET中大部分如删除等一些动作为了友好都为添加confirm('')来弹出消息框进行提示,但是HTML控件和WEB控件是否使用的方法是一样的呢?
二、方法
A. System.Web.UI.WebControls.Button控件
现在一般都是这样
在Page_Load中添加
this.Button1.Attributes.Add("onclick","javascript:return confirm('ok')");
B、System.Web.UI.HtmlControls.HtmlInputButton控件
来达到目的..而假设为在HTML控件中进行上述操作
this.Button2.Attributes.Add("onclick","javascript:return confirm('ok')");
当然你也可以直接在HTML中
id="Button2" type="button" onclick="javascript:return confirm('ok?')" value="Button" name="Button2" runat="server"
再运行,首先他会提示缺少;
这时打开HTML代码
可以看到
input language="javascript" onclick="javascript:return confirm('ok') __doPostBack('Button2','')" name="Button2" id="Button2" type="button" value="Button"
可以清楚的看到不仅仅是少了;而已
而要添加上
if(!confirm('ok')){return};
否则是永远也不会运行它的回发事件的,
C、其它控件
现在试试其它控件
protected System.Web.UI.WebControls.ImageButton ImageButton1;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
protected System.Web.UI.HtmlControls.HtmlInputButton Reset1;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
同样在Page_Load中添加代码,运行都可以正常的运行..
打开HTML你可以看到..它们是怎么回发
打开发现只有LinkButton在href属性中有__doPostBack(),并不是在click事件中所以不会发生上面现象
而其它几个控件则就没有使用__doPostBack()
D、小技巧
在DataGrid中其实可以用更容易的方法来对删除等消息框的处理只要在这里添加
如图
三、总结
通过上面可以看出要添加Attribute时要注意各个控件的区别和差异,添加Attribute要根据各个控件的特性来分别来对待.