日期:2014-05-19  浏览次数:20427 次

如何在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( '确定刪除嗎﹖ '); ");
}
}

幕白正解~