[ASP.NET] CommendField - 增加刪除提示訊息

[ASP.NET] CommendField - 增加刪除提示訊息

方法 1:

在使用GridView的CommendFiel樣板時,可以很快速的藉由內建的功能來達到修改或刪除的功能,

但若是在使用者要刪除時,新增一個確認視窗,避免使用者一時手誤而刪除了寶貴的資料,又該如何做呢?

 

首先我們必須在Gridview介面中包含一個CommendField樣板

 


<asp:CommandField ShowDeleteButton="true" DeleteText="刪除" HeaderText="刪除"/>

 

然後在Gridview的RowDataBound事件中,替LinkButton新增OnClientClick屬性的內容 (程式碼更新)

 


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //string jsScript = "javascript:return confirm('是否確定要刪除?');";
    string jsScript = "javascript:if(!confirm('是否確定要刪除?')){return false;}";
        
    //if (e.Row.RowIndex >= 0)
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        ((LinkButton)e.Row.Cells[3].Controls[0]).OnClientClick = jsScript;
    }
}

 

此處的 Cell[3] ,代表CommandField在我的GridView中的順位是在第四個,

而 Controls[0] 代表LinkButton在我的CommendField中,是控制項的第一個,

最後再將抓到的這個控制項,轉回其原來的型別LinkButton,再為其新增OnClientClick事件,即可解決。

 

方法 2 :

在Design介面中,點選GridView的設定,選擇Add New Column,Filed Type選擇TemplateField,Header text輸入想要設定的標題名稱

1

 

再來在GridView的設定中,選擇Edit Template

2

 

再將Display指定為刪除欄位中的ItemTemplate

3

 

從工具箱中,拉出一個LinkButton到ItemTemplate之中

4  5

 

最後在設定LinkButton的屬性,

CommandName 設定為Delete

OnClientClick 設定為所需要的Javascript,此處為javascript:return confirm('確認刪除');

Text 設定為 刪除

6

 

設定完成之後,執行頁面可以看到當點擊刪除時,會彈跳出確認視窗,預防不小心點到囉!

7

 

※感謝 hatelove 大大的建議,已更新程式碼