ItemDataBound event for Repeater

S

SushiSean

Hello. I have Repeater and DataSource some table and I need change
row in ItemDataBound event.

So code looks like this
<asp:Repeater ID="Repeater1" runat="server"
OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "id")%>
</ItemTemplate>
</asp:Repeater>

protected void Repeater1_ItemDataBound(object sender,
RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView row = e.Item.DataItem as DataRowView;
string id = row["id"].ToString(); //get value here
((DataRowView)e.Item.DataItem)["id"] = 5; //try to change it

}
}

The problem it doesn't have effect. In repeater I see the same id.
So the question is how to change DataItem?
 
R

Riki

When you change the dataitem in ItemDataBound, it has already been added to
the repeater.
Therefore, when you change it there, it's too late already.

Do you want to change the result in the Repeater, or do you want to change
the data?
In the first case, use e.Item.Text to change the contents of the item that
has been bound:
e.Item.Text = 5;
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,019
Latest member
RoxannaSta

Latest Threads

Top