2009-04-08 47 views
0

我目前有一個Gridview顯示將Gridview列從ID轉換爲ItemTemplate中的字符串

TypeID,Name,Description。

我想在GridView中顯示實際的類型名稱而不是TypeID。我創建了這個函數,它接受了ID並返回了名稱,但我無法使用它。有15到20種不同的類型,所以如何將TypeID轉換爲類型名稱,以便在Gridview呈現時顯示它。

protected string GetGenericTypeByID(int genericTypeID) 
     { 
      string genericTypeName; 

      GenericType.Generic_TypeDataTable genericTypeNameDS = new GenericType.Generic_TypeDataTable(); 
      genericTypeNameDS = GenericBO.Get_GenericTypeByID(genericTypeID); 

      genericTypeName = genericTypeNameDS[0]["Generic_Type_Name"].ToString(); 









      return genericTypeName; 

     } 

我想我將能夠使用該功能在ItemTemplate但它似乎更難,我認爲

<ItemTemplate> 
        <asp:Label ID="Label1" runat="server" Text='<%# Bind("GetGenericTypeByID("Generic_Type_ID")")%>'></asp:Label> 
       </ItemTemplate> 

感謝大家誰幫我解決這個問題。 我結束了使用下面的方法,它完美的作品。 GetGenericTypeByID(Eval(「Generic_Type_ID」)))

+0

所以......這是什麼問題? – womp 2009-04-08 04:08:20

回答

1

你已經得到了'bind/eval'和方法調用。
Using Method inside a DataGrid or GridView TemplateField

<asp:TemplateField HeaderText=」Name」> 
<ItemTemplate> 
    <a href='<%# FormatUrl(Eval(」email1″).ToString())%>'><%# Eval(」fname」) %>,&nbsp;<%# Eval(」lname」) %></a> 
</ItemTemplate> 

隨着 'FormatUrl' 功能之中:

public string FormatUrl(string email) 
{ 
    return 「mailto:」 + email; 
} 
0

在您用於填充網格的行類上創建一個只讀屬性,並獲取此屬性以返回函數的結果。

+0

這隻有在你將數據綁定到列表這裏T是你的行類時纔會起作用。如果你將數據綁定到一個sql數據集,那麼這不會有太大的幫助。 – Chris 2009-04-08 05:01:59

1

你限制在一個標籤標記?如果沒有,擴大對大衛哈斯的答案嘗試以下內容:

<ItemTemplate> 
    <%#GetGenericTypeByID(Eval(Generic_Type_ID))%> 
</ItemTemplate>