先建立一个DataList控件

看看其中的三个事件 ItemCommand、ItemCreated、ItemDataBound

要做删除事件主要是用ItemCommand,它会引发CommandEvent事件

ItemCreated的事件是在控件初始化加载时能加载些什么,如果要注册一些提示脚本和样式等信息在这里写就可以

我曾经遇到过用SESSION判断其中的按钮是不是可用,就写在这里面了.

ItemDataBound是在数据绑定后激发,同样可以配合着第一种事件做删除等操作

第一步:在DataList里加入DatakeyName属性

             <asp:DataList ID="DataList1" runat="server" DataKeyField="RemarkID" Width="100%" >

             </asp:DataList>

             这里的RemarkID是从数据库中绑定的主键的字段名

第二步:在DataList的模板中放入一个BUTTON,这里用LINKBUTTON做,并加上commandname属性

<asp:DataList ID="DataList1" runat="server" DataKeyField="RemarkID" Width="100%" >

          <ItemTemplate>

                   <asp:LinkButton ID="LinkButton2" commandname = "DRdel" runat="server">删除</asp:LinkButton>

          </ItemTemplate>

</asp:DataList>

第三步:加上上面提到的事件

 <asp:DataList ID="DataList1" runat="server" DataKeyField="RemarkID" Width="100%" OnItemCommand="DataList1_ItemCommand" >

然后就是在事件中添加信息

 

   protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    
{
        
if (e.Item.ItemIndex != -1 && e.CommandName == "DRdel")//判断索引和CommandName
        {
            
int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());//获取激发事件时的行的主键ID
            FCD_Remark fcd_Remark = new FCD_Remark();//这是自定义类
            if (fcd_Remark.Delete(id))//调用的删除方法
            {
                Lb_message.Text 
= "删除评论成功";
                BindRemark();
            }

            
else
            
{
                Lb_message.Text 
= "删除评论失败";
            }

        }

    }

 

上面的自定义类各位完全可以自己换成自己的删除方法

如果配合其他的事件还可以添加这样的效果:

 

  protected void dlMessages_ItemCreated(object sender, DataListItemEventArgs e)
    
{
        
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)     //判断行和交替行
        {
            LinkButton lbtnDelete 
= (LinkButton)e.Item.FindControl("lbtnDelete");   //寻找到DataList中的LINKBUTTON按钮
            if (lbtnDelete != null)
            
{
                lbtnDelete.Attributes.Add(
"onclick""javascript:return confirm('请注意:删除留言后,该项留言若有有回复,回复也被删除。您确认要删除该项留言吗?');");           //注册删除提示框
                lbtnDelete.CommandArgument = dlMessages.DataKeys[e.Item.ItemIndex].ToString();   //绑定主键
                lbtnDelete.CommandName = "DeleteLword";   //绑定CommandName
            }

        }

    }


//下面的代码类似于上面的  注释就不写了
    protected void dlMessages_ItemCommand(object source, DataListCommandEventArgs e)
    
{
        
if (e.Item.ItemIndex != -1 && e.CommandName == "DeleteLword")
        
{
            
int LwordTabId = int.Parse(e.CommandArgument.ToString());
            
if (new BLLLWordTab().Delete(LwordTabId))
            
{
                tdMsg.InnerHtml 
= "<font color='red'>删除留言成功!</font>";
                ShowLword(ViewState[
"PlayerID"].ToString());
            }

            
else
            
{
                tdMsg.InnerHtml 
= "<font color='red'>删除留言失败!</font>";
            }

        }

    }

 

需要注意的是,在DATALIST中定义的控件是不能直接在代码窗体中找到的,必须用FindControl方法才能找到



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1903034