GridView在使用CommandField刪除時彈出提示框,在.net2005提供的GridView中我們可以直接添加一個CommandField刪除列:<asp:CommandField ShowDeleteButton="True" />,完後在它的RowDeleting事件中完成刪除。但在多半我們在做這種刪除操作時都需要先讓操作者再確認下,完後再進行刪除,以避免誤操作引起的誤刪除。
可以通過下面方法給GridView刪除前加上個確認對話框。
首先,在GridView的屬性對框話框中點擊“Columns”進入它的“字段”設計器。接著在“字段”設計器中選擇以前已加上的那個CommandField“刪除”列,這時在它的屬性列表下會看到一個“將此它段轉換為 TemplateFied”的項,點擊將它轉換為TemplateFied列。
完後退出該字段設計器,切換到源碼視圖你會發現該列已由原來的:<asp:CommandField ShowDeleteButton="True" />
變為了:
復制代碼 代碼如下:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" Text="刪除"></asp:LinkButton>
</ItemTemplate>
最後在<asp:LinkButton>中加入:OnClientClick="return confirm('確認要刪除嗎?');"
這樣點擊刪除時就會先在客戶端彈出“確認要刪除嗎?”對話框,而原來在RowDeleting事件中寫的代碼完全不用改變。
第二種方法:
實現方法:
雙擊GridView的OnRowDataBound事件;
在後台的GridView1_RowDataBound()方法添加代碼,最後代碼如下所示:
復制代碼 代碼如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//如果是綁定數據行
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
{
((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你確認要刪除:\"" + e.Row.Cells[1].Text + "\"嗎?')");
}
}
}
以上是兩種最常見的完善GridView中的刪除控件的方法,這兩種方法還沒有實現對特定數據的綁定作用。