如何在Grid中点击更新时出现是否删除的提示
如题,更新按钮是自定义的,代码如下:
<asp:GridView.............................
<Columns>
<asp:ButtonField CommandName= "edit " Text= "更新 " />
.
.
.
</Columns>
</asp:GridView>
另,有哪位大人知道为什么以下代码无效:
protected void grdTest_ItemDataBound(object sender,DataGridItemEventArgs e)
{
Button btn = (Button)e.Item.FindControl( "btnDelete ");
btn.Attributes.Add( "onclick ", "javascript:return confirm( '确定刪除嗎﹖ '); ");
}
错误提示如下:
System.NullReferenceException:
未将对象引用设置到对象的实例 急用,希望大人们在48小时内给答案!!
先拜谢.
------解决方案--------------------Button btn = (Button)e.Item.FindControl( "btnDelete ");
没有得到对象吧
跟踪一下看看
------解决方案--------------------Button btn = (Button)e.Item.FindControl( "btnDelete ");
if(btn!= null)
{
btn.Attributes.Add( "onclick ", "javascript:return confirm( '确定刪除嗎﹖ '); ");
}
------解决方案--------------------因为grdTest_ItemDataBound中的
e.Item有可能是header,footer.
或者要可先判断
e.Item.ItemType
------解决方案--------------------protected void grdTest_ItemDataBound(object sender,DataGridItemEventArgs e)
{
System.Web.UI.WebControls.LinkButton lk=(System.Web.UI.WebControls.LinkButton)e.Item.Cells[5].FindControl( "LinkButton2 ");
lk.Attributes.Add( "onclick ", "javascript:return confirm( '提示:您确定要删除此项吗? '); ");
}
------解决方案--------------------protected void grdTest_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ButtonField 的类型为Button就是下面这样,如果为Link类型就把Button改成Link,如果是image就改成image类型
Button btn = (Button)e.Row.Cells[5].Controls[0]; //cells[5]表示你这个删除按钮在第五列;
btn.Attributes.Add( "onclick ", "javascript:return confirm( '你确认要删除该数据吗? ') ");
}
}
------解决方案--------------------protected void grdTest_ItemDataBound(object sender,DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btn = (Button)e.Item.FindControl( "btnDelete ");
btn.Attributes.Add( "onclick ", "javascript:return confirm( '确定刪除嗎﹖ '); ");
}
}
幕白正解~