0

リピーター _DataBound サブで必要な各セルの値を取得するにはどうすればよいですか? -これは、値を少し変更して、その変更をリテラルに適用できるようにするためです

4

3 に答える 3

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、すべてのリテラルの最後に「ニャー」を追加したいので、イベントを作成します (それ以外の場合は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 イベント

于 2013-03-28T18:03:35.587 に答える
0

その行でリテラルを取得できますが、イベント引数をキャストします。

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
于 2013-03-28T17:58:07.580 に答える
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`

    }
}
于 2013-03-28T18:07:14.067 に答える