DataList制作删除功能以及它的几个事件 (摘)

先建立一个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: [url]http://tb.blog.csdn.net/TrackBack.aspx?PostId=1903034[/url]

转载于:https://blog.51cto.com/443065/90141

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值