<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand" OnDeleteCommand="DataList1_DeleteCommand" OnItemDataBound="DataList1_ItemDataBound" DataKeyField="Id" ><asp:LinkButton ID="LinkButton2" runat="server" Text='<%#Eval("OrderId")%>' CommandName="select"></asp:LinkButton><asp:LinkButton ID="LinkButton1" CommandName="delete" runat="server">删除</asp:LinkButton>protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName == "select")
        {
            DataList1.SelectedIndex = e.Item.ItemIndex;
            BindDataList1();
        }
    }    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemIndex != -1)
        {
            LinkButton bb = (LinkButton)e.Item.FindControl("LinkButton1");
            bb.Attributes.Add("onclick", "javascript:return confirm('删除后将不能恢复!确定要删除吗?')");
        }
    }
为什么我加了ItemDateBound后,点linkbutton2的时候会提示 未将对象引用设置到对象的实例。
bb.Attributes.Add("onclick", "javascript:return confirm('删除后将不能恢复!确定要删除吗?')");

解决方案 »

  1.   

    OnClientClick="retun confirm('你确定要删除吗')"
    private  void  DataList1_ItemDataBound(object  sender,  System.Web.UI.WebControls.DataListItemEventArgs  e)  
      {  
      if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
      { 
      LinkButton lbDelete = (LinkButton)e.Item.FindControl("lbDel"); lbDelete.Attributes.Add("onclick", "return confirm(\"确定删除吗?\");"); 
      } 
      } 
      

  2.   

    <asp:LinkButton ID="LinkButton1" CommandName="delete" runat="server" OnClientClick="return confirm('确定删除吗?')">删除 </asp:LinkButton> 
      

  3.   

    LinkButton bb =e.Item.FindControl("LinkButton1") as LinkButton;
    if(bb!=null)
                bb.Attributes.Add("onclick", "javascript:return confirm('删除后将不能恢复!确定要删除吗?')"); 
    或者直接写在HTML代码里面,如:
    <asp:LinkButton ID="LinkButton1" CommandName="delete" runat="server" OnClientClick="return confirm('确定删除吗?');">删除 </asp:LinkButton>