Repeater检索先前的索引属性值

时间:2013-01-28 09:56:16

标签: c# asp.net

我在Asp.net中使用Repeater控件。

我有一个场景,根据条件,我必须检索以前的索引属性值。

请帮助..

1 个答案:

答案 0 :(得分:0)

如果您的数据源在数据绑定转发器时可用,您可以执行以下操作:

数据源定义只是为了展示一个例子:

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"];
    }
}

页面加载(Repeater 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。