RadGrid отображает значение дважды (дубликат) подряд?

RadGrid Telerik отображает значение дважды, если GridTemplateColumn имеет атрибут UniqueName и тег <ItemTemplate>.

<telerik:GridTemplateColumn HeaderText="Name" UniqueName="Name">
    <ItemTemplate><%# Eval("Name") %></ItemTemplate>
    <EditItemTemplate><asp:TextBox ID="txtProductName" runat="server" Text='<%# Eval("Name") %>' Width="100%" MaxLength="256" /></EditItemTemplate>
</telerik:GridTemplateColumn>

Если я удалю тег ItemTemplate, он отобразит значение только один раз, но я хотел бы отформатировать значение условно, для чего, я думаю, мне нужен тег ItemTemplate, поскольку я не хочу обновлять свойство моего объекта (в данном случае, Name) само.

Мне нужен атрибут UniqueName, так как он используется в таблицах NestedHierarchy. Как сохранить контроль над отображаемым значением и отобразить его только один раз?

Еще одна проблема с тегом ItemTemplate заключается в том, что в сетке отсутствуют кнопки «Развернуть/Свернуть». Я хочу, чтобы они присутствовали.

Повторяющиеся значения отображаются в одной строке


person Null Head    schedule 20.03.2012    source источник
comment
почему бы вам не отфильтровать это в backEnd или в Dataview ???   -  person Ravi Gadag    schedule 20.03.2012
comment
@Ravi: я не хочу, чтобы фактическое значение менялось. Например, в приведенной выше таблице я хотел бы отобразить специальное предложение Blue Blood с помощью ItemTemplate. Но при редактировании EditTemplate должен показывать только Blue Blood.   -  person Null Head    schedule 21.03.2012


Ответы (1)


Вы можете изменить столбец в событии привязки данных элемента RadGrid1_ItemDataBound.

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
     if (e.Item is GridDataItem && !e.Item.IsInEditMode)
     {
         var dataBoundItem = e.Item as GridDataItem;
         var dto = (yourDto)e.Item.DataItem;
         dataBoundItem["Name"] = dto.Name + " special";
     }
}
person msigman    schedule 21.03.2012