Change repeater row value?

asp.net, c#, itemdatabound, repeater, webforms

Solution

you can try something like this :

Repeater in .aspx:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
    <table>
    <tr>
          <td> <%# GetText(Container.DataItem) %></td>
    </tr>

    </table>
    </ItemTemplate>
</asp:Repeater>

.cs :

 protected static string GetText(object dataItem)
 {
    string year = Convert.ToString(DataBinder.Eval(dataItem, "year"));
    if (!string.IsNullOrEmpty(year))
    {
        return year;
    }
    else
    {
        return "blahblah";
    }

 }

IN `GetText` Method you can able to check by string that Empty or not than return string.

Problem

im trying to change a value inside my repeater : (via itemdatabound event) if the year is empty - set value `blabla` my repeater : ``` <ItemTemplate> <tr > <td > <%#Eval("year") %> </td> ``` my c# code : ``` void RPT_Bordereaux_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { if (string.IsNullOrEmpty(((DataRowView)e.Item.DataItem)["year"].ToString())) { (((DataRowView)e.Item.DataItem)["year"]) = "blabla"; // ??????? } } ``` it does change but not displayed in repeater ( the old value is displayed). one solution is to add a `server control` or `literal` ( runat server) in the `itemTemplate` - and to "`findControl`" in server - and change its value. other solution is by jQuery - to search the empty last TD. but - my question : is there any other server side solution ( ) ?

Original source