如何在 Repeater 的事件中得到 当前 Item 绑定的数据?
2004-07-03 11:51
686 查看
如何在 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"] 这种方法执行效率高。
我用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"] 这种方法执行效率高。
相关文章推荐
- 如何在 Repeater 的事件中得到 当前 Item 绑定的数据
- 如何在 Repeater 的事件中得到 当前 Item 绑定的数据 ---声明转载
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- Repeater 的操作,数据的显示,绑定,动态取控件中的值和Repeater1_ItemCommand事件的相关用法
- FormView 编辑模式 DataBind 事件中如何获取当前绑定的数据对象
- 如何使用 DataBinder.Eval(Container.DataItem,"num","{0:p}") 对DataList 进行数据绑定
- Android布局设计之ExpandableList绑定XML数据构成级联、item布局页面的控件查找及配置child事件,自定义适配显示内容
- DataItem,gridview,repeater数据控件数据绑定
- 当不知道listView的item有多少个时,点击跳转如何携带当前item数据
- 绑定在标签中的事件如何获取当前元素
- GridView中模版列使用RowCommand事件如何得到当前列的行索引?
- 如何得到DataGrid当前选中行的数据(VC++)
- datatables如何获取当前page的数据的条数以及datables的一些有用的事件
- 关于在repeater上得到当前行号可以直接绑定
- Repeater数据控件的两个重要事件ItemDataBound 和 ItemCommand
- 如何得到数据绑定的树节点的父节点
- 如何使用动态创建模板列并绑定数据(GridView,Repeater,DataGrid)
- Repeater如何嵌套绑定数据?
- SpringMVC如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性
- 请教如何在数据绑定时不让combox控件触发SelectedIndexChanged事件,