如何在 Repeater 的事件中得到 当前 Item 绑定的数据?

如何在 Repeater 的事件中得到 当前 Item 绑定的数据?

我用Repeater实现一个留言本,我的 Repeater(id为Rp1) 的 ItemTemplate 中有一个用于删除留言的 LinkButton(id为DelButton)。

留言本表结构
Table Message
(
ID,
UserName,
Message
)

我想用客户端脚本实现删之前的确认操作。即在删除前,提示出现一个脚本对话框。“您确信要删除 UserName 的留言吗?”其中UserName来自于Repeater的绑定数据,不同的Item,绑定的UserName值也不同。

经过acewang(龍芯*Inside!) 和SVG(ben) 两位大虾的帮助,我最后的实现办法如下:

显示页面:

<SCRIPT LANGUAGE="JavaScript">
<!--
function confirm_del(UserName)
{
 return confirm('您确定要删除“' + UserName + '”吗?');
}
//-->
</SCRIPT>

<asp:Repeater id="repGuestbook" runat="server">
        <ItemTemplate>
        ....
        ....
        <asp:LinkButton id="DelButton" runat="server" OnCommand="Del_Click" CommandName="Del" CommandArgument= '<%# DataBinder.Eval(Container.DataItem,"ID") %>'>删除留言</asp:LinkButton>
        ....
        ....
        </ItemTemplate>
</asp:Repeater>

代码页面:

private void InitializeComponent()
{   
      ....
      this.Rp1.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.Repeater1_ItemDataBound);
      ....
}


private void Repeater1_ItemDataBound(object source, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
      if (e.Item.ItemType==ListItemType.Item)
      {
          LinkButton lb=(LinkButton)e.Item.FindControl("MyLB");
          lb.Attributes["onClick"]="JavaScript:return confirm_del('" + DataBinder.Eval(e.Item.DataItem, "UserName") +"');return false;";
          // lb.Attributes["onClick"]="JavaScript:return confirm_del('" + ((DataRowView)(e.Item.DataItem))["UserName"] +"');return false;";
      }

}

上面的 onClick的实现演示了两种实现的办法。(第一种被注释掉了。)
实际应用的时候只需要一种就可以了。

DataBinder.Eval(e.Item.DataItem, "UserName") 这种方法使用简单。
((DataRowView)(e.Item.DataItem))["UserName"] 这种方法执行效率高。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值