aspx:
        <asp:DataList ID="DataList1"  runat="server"  ><ItemTemplate  ><table><tr><td><a href="detail.aspx?s1=<%#DataBinder.Eval(Container.DataItem,"id1") %>"><%#DataBinder.Eval(Container.DataItem,"dt1") %></a></td><td><asp:LinkButton ID="Button1" Text=" 删" runat="server"  CommandName="delete"/></td></tr></table></ItemTemplate>
        </asp:DataList>
cs:
private void DataList1_DeleteCommand(object source, 
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
   // Code to delete the item from the data source.
   DataTable aTable = (DataTable)DataList1.DataSource;
   aTable.Rows[e.Item.ItemIndex].Delete();
   // Bind the data after the item is deleted.
   DataList1.DataBind();
}    
现在页面上的删除按钮点上去没反应

解决方案 »

  1.   

    vs2003? 
    那么应该是处理 事件掉了在IDE设计界面上 点datalist控件 属性 选取 事件 重新点击 删除事件
    如果是事件掉了应该会 产生DataList1_DeleteCommand1 将你上面的函数内容拷贝入新函数
    并将 源函数删除private void DataList1_DeleteCommand1(object source, 
    System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
       // Code to delete the item from the data source.
       DataTable aTable = (DataTable)DataList1.DataSource;
       aTable.Rows[e.Item.ItemIndex].Delete();
       // Bind the data after the item is deleted.
       DataList1.DataBind();
    }
      

  2.   

    Error 1 'list_title.DataList1_DeleteCommand(object, System.Web.UI.WebControls.DataListCommandEventArgs)' is inaccessible due to its protection level
      

  3.   

    现在新问题是
    Object reference not set to an instance of an object. 
    Line 53:         aTable.Rows[e.Item.ItemIndex].Delete();
      

  4.   

    try:Text=" 删" runat="server" CommandName="delOther"/>把CommandName该下,2005中好像delete已经内置了。
      

  5.   

    private void DataList1_DeleteCommand(object source, 
    System.Web.UI.WebControls.DataListCommandEventArgs e)
    ======================================================
    protected void DataList1_DeleteCommand(object source, 
    System.Web.UI.WebControls.DataListCommandEventArgs e)
      

  6.   

    谢谢楼上,那个已经改好了
    现在新问题是
    Object reference not set to an instance of an object. 
    Line 53:         aTable.Rows[e.Item.ItemIndex].Delete();
      

  7.   

    楼主,你这个代码我测试过,可以删除,不过删除也是删的是DataTable里的数据,数据库里的数据是不会删除的
      

  8.   

    根据你报的错
    Object reference not set to an instance of an object我猜测 上面这句
    DataTable aTable = (DataTable)DataList1.DataSource;
    可能成功了,但是 (DataTable)DataList1.DataSource;返回的是null,你最好单步调式看看是不是这样
      

  9.   

    那麻烦写个删除库里面的代码吧
    我这边一旦commandname设置成delete就出错
      

  10.   

    DataTable aTable = (DataTable)DataList1.DataSource;//这样有问题,
    经过postback后,DataList1.DataSource,已经没了,aTable还是需要手工保存到ViewState或Session里,否则postback后无法使用
      

  11.   

    private void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
    SqlConnection cn = new SqlConnection(connectionString);
    string strDelete = "delete Note Where id = @ID";
    SqlCommand cmd = new SqlCommand( strDelete, cn );
    //使用 DataKeys的前提是你给DataList1设置过DataKeyField,一般是数据库表的主键
    cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = DataList1.DataKeys[e.Item.ItemIndex].ToString();
    cn.Open();
    cmd.ExecuteNonQuery();
    cn.Close();
    DataList1.SelectedIndex = -1;
    //下面这个是重新绑定数据的方法
    BindDataList();
    }
      

  12.   

    Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index Line 57: cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = DataList1.DataKeys[e.Item.ItemIndex].ToString();
      

  13.   

    你没有设置DataList1的DataKeyField