簡單的客戶端腳本為gridview“刪除”列添加確認對話框
如何為gridview控件裏的“刪除”列添加一個確認對話框?網上眾說紛紜,大致見到了三種解決方案,現歸納如下:
1、繼承Web.IO裏的button控件,為其實現一個IPostback的接口用於回調,具體代碼之複雜,隻有作者自己想體會吧……
2、在gridview的RowDataBound事件中,遍曆所有子控件,若屬於LinkButton類,且CommandName為“Delete”,就調用其Atributes.Add方法,添加一個onclick事件內含confirm語句,即
lb.Attributes.Add("onclick", "return confirm('您真的要刪除此行嗎?')");
3、目前已知的最簡潔的方法,如圖,在刪除按鈕的那一列屬性裏麵,把DeleteText屬性設為
<div id="de" onclick="JavaScript:return confirm('確定刪除嗎?')">刪除</div>
這個太強了,讚一個。
可問題是,.net輸出的html代碼如下:
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView1','Delete$0')" style="color:#4A3C8C;"><div id="de" onclick="JavaScript:return confirm('確定刪除嗎?')">刪除</div></a>
仔細想了想,以前用asp直接寫的刪除標簽是這個樣子的:
<a href="deleteUser.asp?id=xxx" onclick="return confirm('確定刪除嗎?')">刪除</a>
之後,新的問題又來了。如果我們的CommandField中ButtonType是Button的話,這段代碼就失效了。我想了下,可以通過將其轉換為模板列的方式來解決。
先將該字段轉換成模板,然後編輯這個模板列,選中用於刪除的Button,將其onClientClick屬性設為
return confirm('您確認刪除要刪除麼?')
最後更新:2017-04-02 00:06:38