2012-03-19 66 views
1

我能從another question得到我的答案的一部分,但無法找到我需要完成的更多特定位信息。將Telerik超鏈接列和Gridbound列組合成1字段

我想將2個字段組合成1像上面的問題,但其中一個是GridHyperLinkColumn。我使用的代碼GridItemDataBound事件背後放2場這樣在一起:

protected void GridItemDataBound(object sender, GridItemEventArgs e) { 
    if (e.Item is GridDataItem) { 
    GridDataItem item = (GridDataItem)e.Item; 
    item["A"].Text = item["A"].Text + " /<br/>" + item["B"].Text; 
    item["C"].Text = item["C"].Text + " /<br/>" + item["D"].Text; 
    } 
} 

我的UI縮短停機簡單看起來是這樣的:

<Columns>  
    <telerik:GridBoundColumn UniqueName="A" DataField="A" /> 
    <telerik:GridBoundColumn UniqueName="B" DataField="B" Visible="false" /> 
    <telerik:GridHyperLinkColumn DataNavigateUrlFields="ID"  DataNavigateUrlFormatString="~.aspx?ID={0}" DataTextField="C" Text="{0}" UniqueName="C" />  
    <telerik:GridBoundColumn UniqueName="D" DataField="D" Visible="false" /> 
    </Columns> 

這非常適用於第2列我將它合併爲1(A & B)。

但是,假設item [「C」]是一個GridHyperLinkColumn。當我嘗試相同的代碼時,它只顯示/ <D value>。在「C」應該顯示的斜線前面什麼也沒有顯示。

是否有不同的屬性(而不是.Text)我應該使用還是需要以不同的方式做到這一點?

回答

0

有很多方法可以做到這一點。一種方法是使用模板列顯示如下:

<Columns> 
    <telerik:GridTemplateColumn HeaderText="A and B"> 
     <ItemTemplate><%# Eval("A") %>/<br /><%# Eval("B") %></ItemTemplate> 
    </telerik:GridTemplateColumn> 
    <telerik:GridTemplateColumn HeaderText="B and C"> 
     <ItemTemplate><a href="blah.aspx?ID=<%# Eval("C") %>"><%# Eval("C") %></a>/<br /><%# Eval("D") %></ItemTemplate> 
    </telerik:GridTemplateColumn> 
</Columns> 

如果你不想使用模板列,就可以得到它的工作,你正在做的方式。問題在於GridHyperlinkColumn將鏈接呈現爲控件(例如item["C"].Controls[0]),而不是直接在Text屬性中呈現。下面是得到它做你想要的一種方式:

if (e.Item is GridDataItem) { 
    GridDataItem item = (GridDataItem)e.Item; 
    item["A"].Text = item["A"].Text + " /<br/>" + item["B"].Text; 
    Literal lit = new Literal(); 
    lit.Text = " /<br/>" + item["D"].Text; 
    item["C"].Controls.Add(lit); 
} 
+0

我試過GridTemplateColumn方法,它沒有工作 - 我得到一個錯誤「評估和演示只能在數據綁定列的上下文中使用」。我甚至試圖把它放在GridBoundColumn標籤中,它抱怨ItemTemplate無效。但是,我能夠成功地使用文字技術(這非常光滑)。謝謝你的幫助。 – 2012-03-20 13:23:03

+0

@ShortyLong有趣的是,你不能得到第一個例子工作。當我手動將DataTable綁定到網格時,它適用於我。任何速度,很高興你能得到第二種工作方式。請將我的答案標記爲已接受的答案。 – csm8118 2012-03-20 13:50:40