2012-02-01 93 views
11

我有一個綁定的asp:GridView。在這個我有多個列,我試圖從兩個數據庫字段串聯到一個領域的數據。在Gridview的BoundField中顯示多個數據字段

如何做到這一點?

這樣的事情?

asp:BoundField DataField="field1 + ' ' + field2" HeaderText="Status" SortExpression="info" 
+0

正確的大小寫和拼寫總是加號=) – jadarnel27 2012-02-01 14:29:22

回答

0

試試這個。 如果你使用兩個數據集製作一個數據表並將其綁定到gridview。

<asp:BoundField DataField="<%# DataBinder.Eval(Container.DataItem, "f1")%>+ ' ' + <%# DataBinder.Eval(Container.DataItem, "f2")%>" HeaderText="Status" SortExpression="info"/> 
+0

難道你不需要使用模板文件嗎?沒有綁定的字段? – Arion 2012-02-01 14:22:52

+0

這...有效嗎?你測試過了嗎? – pseudocoder 2012-02-01 15:23:27

+0

是的,我很確定這不起作用。 -1。 – pseudocoder 2012-02-02 14:50:31

19

很確定你需要使用TemplateField來代替BoundField。

在你的GridView列塊:

<asp:TemplateField HeaderText="Name"> 
     <ItemTemplate> 
      <%# Eval("FirstName") + " " + Eval("LastName")%> 
     </ItemTemplate> 
    </asp:TemplateField> 
+0

非常感謝 – 2012-02-02 09:03:50

1
ToolTip='<%# Eval("LastName") & "-" & Eval("FirstName") %>' 
+0

但這不會給第一視圖的信息。 – 2014-08-04 13:39:13

10

只是爲了完整性,因爲我尋找一個解決方案,是先在這裏......

您已經使用string.Format()

得到了更多的靈活性
<asp:TemplateField HeaderText="Status"> 
<ItemTemplate> 
    <%# string.Format("{0} {1}", Eval("field1") ,Eval("field2"))%> 
</ItemTemplate> 
</asp:TemplateField> 

在這裏您還可以使用string.Format()的力量來格式化da TE和號碼類型爲這裏descriped:https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types

樣品:

<%# String.Format("{0:MM/dd/yyyy} - {1:N2}", Eval("field1"), Eval("field2")) %> 

另一種選擇是做在代碼中自定義的方法,而不是背後的的String.Format

<asp:TemplateField HeaderText="Status"> 
    <ItemTemplate> 
     <asp:Label runat="server" Text='<%#GetStatus(Eval("Status1"),Eval("Status2")) %>'> 
     </asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

Codebehind:

public string GetStatus(object Status1, object Status2) 
{ 
    return (string)Status1 + " " + (string)Status2; 
} 
+1

@ShieldOfSalvation謝謝我已將它添加到我的答案中 – fubo 2017-11-15 07:51:34