一、前言
在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中其實可以用更容易的方法來對刪除等消息框的處理只要在這裡添加
<div onclick=”return confirm(‘確定刪除嗎?’)”>刪除</div>
如圖
三、總結
通過上面可以看出要添加Attribute時要注意各個控件的區別和差異,添加Attribute要根據各個控件的特性來分別來對待.