2012-03-20 105 views
0

Telerik的RadGrid顯示值兩次,如果GridTemplateColumnUniqueName屬性和<ItemTemplate>標記。RadGrid連續顯示值兩次(重複)?

<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的另一個問題是,網格中不存在展開/摺疊按鈕。我希望他們能在場。

Duplicate values showed in same row

+1

爲什麼不過濾它在後端或在DataView中? – 2012-03-20 03:58:20

+0

@Ravi:我不想要改變實際值。例如,在上表中,我想使用ItemTemplate顯示「Blue Blood special」。但在編輯時,EditTemplate只應顯示「藍血」。 – 2012-03-20 20:01:47

回答

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"; 
    } 
} 
+0

謝謝。這樣可行。 – 2012-03-21 23:20:10