`

如何在 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"] 这种方法执行效率高。

分享到:
评论

相关推荐

    Repeater控件绑定数据、分页、数据操作,最佳代码

    `(Container.DataItem, "绑定数据源字段名")%&gt;`使用了DataBinder.Eval方法来绑定数据源中的字段到控件。这里的"绑定数据源字段名"应替换为实际的数据字段名称。 - `&lt;asp:Button&gt;`控件被用于导出数据,其`...

    Repeater绑定无限极分类

    在ASP.NET Web应用程序中,`Repeater` 控件是一种非常强大的数据绑定控件,它能够灵活地展示来自不同数据源的数据,并允许开发者自定义显示格式。与`GridView`、`DataList`等其他数据绑定控件相比,`Repeater`提供了...

    asp.net中Repeater控件嵌套Repeater调数据方法

    2. **定义内部Repeater控件**:在外部Repeater控件的模板中,定义一个内部的Repeater控件,用于展示与当前顶层数据项相关的子数据。 3. **设置数据源**:在页面的后端代码中,通过`DataSource`属性为外部Repeater...

    外部按钮获取Repeater中HiddenField的值

    在ASP.NET中,Repeater控件是常用的数据绑定控件,但是当我们需要在外部按钮点击事件中获取Repeater中HiddenField的值时,会遇到一些困难。下面我们将详细介绍如何获取Repeater中HiddenField的值。 首先,我们需要...

    Repeater嵌套方法

    总结来说,本例中的Repeater嵌套方法利用了***的数据绑定和事件处理机制,通过在页面中嵌套Repeater控件,实现了分层显示数据列表的功能。这种技术在构建复杂的数据呈现页面时非常有用,特别是当数据具有层级结构...

    Repeater控件的使用

    4. 绑定数据源到`Repeater`控件,通常在代码-behind的`Page_Load`事件中完成。 ## 二、Repeater的编辑功能 实现`Repeater`控件的编辑功能,主要通过在`ItemTemplate`中包含可编辑的控件,如`TextBox`、`...

    使用AspNetPager对Repeater控件分页简单小例

    在代码-behind文件中,我们需要处理Repeater的ItemDataBound事件,以便在数据绑定时正确显示当前页的数据。同时,需要处理AspNetPager的PageChanging事件,当用户点击分页按钮时,根据新的页码重新加载数据并重新...

    .net里多层repeater的嵌套使用

    6. 递归处理:如果需要更深层的嵌套,可以在内部Repeater的ItemDataBound事件中继续添加新的Repeater并绑定数据,以此类推。 7. 访问权限:在后台代码中,事件处理方法通常需要声明为`protected`,以便ASP.NET框架...

    Repeater二层嵌套完整源代码+数据版

    3. **第二层Repeater绑定**:在第一层Repeater的ItemDataBound事件中,你可以访问到当前项的数据上下文(Item.DataItem),并以此为数据源绑定第二层Repeater。这里要注意,由于第二层Repeater是在运行时动态创建的...

    repeater很好的例子:嵌套

    // 获取子级Repeater并绑定数据 var childRepeater = (Repeater)e.Item.FindControl("ChildRepeater"); var childDataset = GetChildData(parentData.ParentId); // 假设我们根据父ID获取子数据 childRepeater....

    repeater嵌套

    3. 在外部`Repeater`的ItemTemplate中,我们需要添加内部`Repeater`控件,并在`OnItemDataBound`事件中绑定子数据。 ```aspx &lt;asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_...

    datalist中嵌套的hyperlink数据绑定

    `Container.DataItem`是`Repeater`项的数据上下文,它包含了当前迭代的数据项。 接下来,我们看后台(服务器端)代码。这里创建了一个`ArrayList`对象`arr`,然后用一个循环填充它。这通常代表从数据库或其他数据源...

    repeater控件显示日期

    在事件处理程序中,可以访问当前Item的数据项和对应的控件,进行自定义处理: ```csharp protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType....

    repeater+aspnetpager实现分页

    在Repeater的ItemTemplate中定义数据项的布局,然后在代码-behind文件中为Repeater绑定数据。例如: ```xml &lt;asp:Repeater ID="repData" runat="server"&gt; &lt;!-- 这里编写每个数据项的HTML结构 --&gt; &lt;/asp:...

    DataGrid中嵌套使用Repeater.doc

    在DataGrid的模板列中,我们有一个名为"ChildRepeater"的Repeater控件,它的DataSource属性绑定到了当前行(由Container.DataItem表示)的子数据行,也就是通过"myrelation"关系获取的"location_id"匹配的"catalyst...

    通过Repeater实现三层嵌套

    在`OnItemDataBound`事件中,我们可以访问到当前正在绑定的数据项,以便进行自定义处理,例如添加子级`Repeater`控件。 以下是实现三层嵌套的基本步骤: 1. **创建主Repeater**:在`.aspx`页面中,我们首先添加一...

    自己整理了一个repeater嵌套和分页的实例

    在这个实例中,可能是在主`Repeater`的外层添加了一个分页控件(如`Pager`),并通过事件驱动更新数据源,使得每次点击分页按钮时,只加载当前页的数据到`Repeater`。 此外,为了提高用户体验,我们还需要关注一些...

    Repeater无刷新分页

    1. **设置Repeater控件**:在HTML部分,我们创建一个Repeater控件,并为其绑定数据源。Repeater允许我们自定义每行的HTML结构,这样可以轻松地根据需求构建复杂布局。 ```html &lt;asp:Repeater ID="rptData" runat=...

    C#_aspx_数据绑定方法集

    在示例中,`DataList`控件的`ItemTemplate`使用了`Eval`方法来绑定数据。`&lt;asp:HyperLink&gt;`的`NavigateUrl`和`&lt;asp:Image&gt;`的`ImageUrl`以及`&lt;asp:Label&gt;`的`Text`都使用了`Eval`方法,将数据源中的`PhotoID`、`...

    Repeater实现RadioButton单选功能

    2. **C#后端代码**:在Repeater控件的`ItemDataBound`事件处理程序中,为每个`RadioButton`添加一个`onclick`事件,当点击某个`RadioButton`时会触发`SetUniqueRadioButton`函数。 #### JavaScript函数详解 ```...

Global site tag (gtag.js) - Google Analytics