在.net2.0中,实现对gridview删除行时弹出确认对话框的四种方法

1,GridView中如何使用CommandField删除时,弹出确认框?   在VS2005提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,完后在它的RowDeleting事件中完成删除。但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除。 可以通过下面方法给GridView删除前加上个确认对话框。 首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器。接着在“字段”设计器中选择以前已加上的那个CommandField“删除”列,这时在它的属性列表下会看到一个“将此它段转换为 TemplateFied”的项,点击将它转换为TemplateFied列。 完后退出该字段设计器,切换到源码视图你会发现该列已由原来的:<asp:CommandField ShowDeleteButton="True" /> 变为了:

<asp:TemplateField ShowHeader=&quot;False&quot;> 
                                  <ItemTemplate> 
                                      <asp:LinkButton ID=&quot;LinkButton1&quot; runat=&quot;server&quot; CausesValidation=&quot;False&quot; CommandName=&quot;Delete&quot;    Text=&quot;删除&quot;></asp:LinkButton> 
</ItemTemplate> 
最后在<asp:LinkButton>中加入:OnClientClick=&quot;return confirm(’确认要删除吗?’);&quot;  

这样点击删除时就会先在客户端弹出“确认要删除吗?”对话框,而原来在RowDeleting事件中写的代码完全不用改变。

2.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
if (e.Row.RowIndex > -1) 
{ 
int id = Convert.ToInt32(GridView1.DataKeys[e.Row.RowIndex].Value); 
LinkButton lbtnDelete = (LinkButton)e.Row.FindControl(&quot;lbtnDelete&quot;); 
if (lbtnDelete != null) 
{ 
lbtnDelete.CommandArgument = id.ToString(); 
lbtnDelete.Attributes.Add(&quot;onClick&quot;, &quot;<script>return confirm(’是否确认删除!’)</script>&quot;); 
} 
} 
} 

} 

3,先引用System.windwos.Forms,然后在进行处理

using System.Windows.Forms; 

protected void gvNewList_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
DialogResult result = MessageBox.Show(&quot;确定要删除本行吗?&quot;, &quot;信息提示!&quot;, MessageBoxButtons.YesNo, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.ServiceNotification); 
if (result == DialogResult.Yes) 
{ 
e.Cancel = false; 
} 
else 
{ 
e.Cancel = true; 
} 
} 


4,添加一个删除列

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
TableCell tc = (TableCell)e.Row.Cells[e.Row.Cells.Count - 1]; 
for (int i = 0; i < tc.Controls.Count; i += 2) 
{ 
// cerco il controllo ImageButton (ho utilizzato quello) 
Object o = tc.Controls[i]; 
if (o is ImageButton) 
{ 
// controllo trovato! 
// ora aggiungo l’evento js onClick per chiedere conferma all’utente 
ImageButton lb = (ImageButton) o; 
((ImageButton)lb).Attributes.Add(&quot;onclick&quot;, @&quot;javascript:return confirm(’Attenzione: sicuro di voler cancellare?’);&quot;); 
} 
} 
} 


 

<asp:TemplateField ShowHeader=&quot;False&quot;> 
<ItemStyle HorizontalAlign=&quot;Center&quot; Width=&quot;16px&quot; /> 
<ItemTemplate> 
<asp:ImageButton ID=&quot;imgDelete&quot; runat=&quot;server&quot; CausesValidation=&quot;False&quot; CommandName=&quot;Delete&quot; ImageUrl=&quot;~/img/ico_elimina.gif&quot; AlternateText=&quot;Cancella data&quot; OnClientClick=&quot;return confirm(’Sicuro di voler cancellare?’);&quot; /> 
</ItemTemplate> 
</asp:TemplateField> 


以上方法总结 ---------Template 方式 51aspx.com-----------------------------------------------

<asp:TemplateField ShowHeader="False"> 
<ItemTemplate> 
<aspinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete" 
Text="删除" OnClientClick=’return confirm("Are you sure you want to delete this record?");’></aspinkButton> 
</ItemTemplate> 
</asp:TemplateField> 


-------------RowDeleting method------------------------------------------------ protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { Response.Write("<script>window.confirm(’确定删除吗?’);</script>"); } -------------RowDataBound method-------------------------------------------------------------- protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { ((LinkButton)e.Row.Cells[4].Controls[0]).Attributes.Add("onclick", "javascript:return confirm(’确实要删除该记录吗?’)"); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值