[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

SushiSean

1/8/2008 10:19:00 PM

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?
1 Answer

Riki

1/11/2008 5:45:00 PM

0

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;

--

Riki

"SushiSean" <SushiSean@discussions.microsoft.com> wrote in message
news:2BEEF8A2-B630-4DF0-9C4B-4FD7AA2E1EA5@microsoft.com...
> 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?