我做了个留言板,用datalist绑定了所有人的留言
datalist 绑定数据后,想删除指定的留言,应该怎么做
还有就是DataList1 .DataKeys [e.Item.ItemIndex]这个是什么意思呢
要用这个吗

解决方案 »

  1.   

    当前记录主键
    <EditItemTemplate>   
       <asp:LinkButton   Runat="server"   CommandName="cancel"   ID="btnCancel">取消</asp:LinkButton>    
    </EditItemTemplate>   
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
        int ID = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
      //删除数据   DataList1.DataBind();
    }
        
      

  2.   


    protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "delete")
            {
                string ID= (string)DataList2.DataKeys[e.Item.ItemIndex];
                string strSQL = "delete from ....
            }
        }
    设置DataList的DataKeyField的属性为主键ID, 设置Button的CommandName的属性为delete。
      

  3.   

     int ID = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex])  得把数据库中的ID 绑定到DATALIST 里的一个属性上去  。要不这句话会错。 
         然后根据ID 删除就可以了。CommandName 事件这样获取不到ID的吧。 最好方法就是给按钮绑定索引 。或得你绑定按钮的索引值
      

  4.   

    那个ID在数据库中就有吗??我是不是得在数据库中设个,也就是 string sql = "delete from student where userid=" + ID ,是这样吗?
    可是这样的话他就会出现错误:“索引超出范围。必须为非负值并小于集合大小。参数名: index ”
    麻烦大家了
    感激不尽啊
      

  5.   

    protected void objRoom_Selected(object sender, ObjectDataSourceStatusEventArgs e)
        {
            this.DataList1.DataKeyField = "roomId";
        }protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            this.DataList1.Items[e.Item.ItemIndex].BackColor = Color.Red;
            int index = Convert.ToInt32(this.DataList1.DataKeys[e.Item.ItemIndex]);
            Session["index"] = index;
            Room room = RoomManager.GetRoomStateByRoomId(Convert.ToInt32(Session["index"]));
            this.RadioButtonList1.SelectedValue = room.State.ToString();
        }
      

  6.   

     protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    在这个下写的
      

  7.   

    DataList1 .DataKeys [e.Item.ItemIndex]这是主键
      

  8.   

    我明白我错在哪了
    呵呵
    我在问个愚蠢的问题:怎样把数据库中的ID 绑定到DATALIST 里的一个属性上去??
    呵呵
    谢谢了
      

  9.   

    哥们,说说你是怎么做的?我的方法和这儿说的是一样的
    但是总提示:回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。