-4

Asp.netでRepeaterコントロールを使用しています。

条件に基づいて、以前のインデックスプロパティ値を取得する必要があるシナリオがあります。

助けてください..

4

1 に答える 1

0

リピーターをデータバインドするときに DataSource が利用可能な場合、次のようなことができます。

例を示すためだけのデータソース定義:

protected DataTable Data
{
    get
    {
        if (ViewState["Data"] == null)
        { 
            DataTable table = new DataTable();
            table.Columns.Add("ID", typeof(int));
            table.Columns.Add("Name");
            table.Columns.Add("Color");
            table.Columns.Add("Weight", typeof(int));

            table.Rows.Add(1, "Ball", "Red", 10);
            table.Rows.Add(2, "Table", "Black", 50);
            table.Rows.Add(3, "Chair", "Green", 30);
            ViewState["Data"] = table;
        }
        return (DataTable)ViewState["Data"];
    }
}

ページの読み込み (リピーター DataBinding):

protected void Page_Load(object sender, EventArgs e)
{
    rpt.DataSource = Data;
    rpt.DataBind();
}

リピーターコード:

<asp:Repeater ID="rpt" runat="server">
    <ItemTemplate>
        <%# 
            Condition ? Data.Rows[Container.ItemIndex - 1]["Name"] : Eval("Name")
        %> 
    </ItemTemplate>
</asp:Repeater>

Dataコード ビハインドで、DataTable である保護されたプロパティを参照します。

于 2013-01-28T10:25:52.433 に答える