asp.net repeater - 获取行项_DataBound的值

时间:2013-03-28 17:47:11

标签: asp.net repeater itemdatabound

如何在转发器DataBound子中获取我想要的每个单元格的值? - 这样我可以稍微更改一下值并将更改应用于文字

3 个答案:

答案 0 :(得分:0)

您可以获取该行中的文字但是转换事件arg:

Protected Sub repeater_dataBind(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) Handles myRepeater.ItemDataBound
    If (e.Item.ItemType <> ListItemType.Item And e.Item.ItemType <> ListItemType.AlternatingItem) Then
            Return
    Else
       Dim myLiteral As New Literal
       myLiteral = CType(e.Item.FindControl("IDofLiteral"), Literal)
    End If

end Sub

答案 1 :(得分:0)

假设这是你的转发器(因为你没有包含任何代码):

<asp:Repeater ID="_r" runat="server">
    <ItemTemplate>
        <asp:Literal ID="_lit" Text='<%# Eval("yourItemName")%>' runat="server"></asp:Literal>
        <br /><br />
    </ItemTemplate>
</asp:Repeater>

并且您创建了一个ItemDataBound事件,因为您想在每个文字的末尾添加“meow”(否则只会显示数据源中yourItemName的值):

protected void Page_Load(object sender, EventArgs e)
{
    _r.DataSource = table;
    _r.ItemDataBound += new RepeaterItemEventHandler(RItemDataBound);
    _r.DataBind();
} 

protected void RItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Literal lit = (Literal)e.Item.FindControl("_lit");
        lit.Text += "meow";
    }
}

阅读:Repeater.ItemDataBound Event

答案 2 :(得分:0)

您可以使用FindControl获取repeater内的单元格值。

protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Literal lbl = (Literal)e.Item.FindControl("ltrl");  
        lbl.Text = // will give you the value for each `ItemIndex`

    }
}