C# 在ItemTemplate中将Gridview列从ID转换为字符串

C# 在ItemTemplate中将Gridview列从ID转换为字符串,c#,asp.net,gridview,controls,C#,Asp.net,Gridview,Controls,我目前有一个Gridview,可以显示 类型ID、名称、描述 我想在gridview中显示实际的类型名,而不是TypeID。我创建了这个函数,它接受ID并返回名称,但是我在使用它时遇到了问题。有15-20种不同的类型,因此如何将TypeID转换为类型名称,以便在呈现Gridview时显示它 protected string GetGenericTypeByID(int genericTypeID) { string genericTypeName;

我目前有一个Gridview,可以显示

类型ID、名称、描述

我想在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(Convert.ToInt32(Eval(“Generic_Type_ID”))

在用于填充网格的row类上创建一个只读属性,并获取此属性以返回函数的结果。

您得到了“bind/Eval”和方法调用。


您是否仅限于标签标签?如果不是,请扩展David HAust的答案,尝试以下方法:

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

只有当您将数据绑定到某个列表(其中T是您的行类)时,这才有效。如果要将数据绑定到sql数据集,那么这不会有多大帮助。
public string FormatUrl(string email)
{
    return “mailto:” + email;
}
<ItemTemplate>
    <%#GetGenericTypeByID(Eval(Generic_Type_ID))%>
</ItemTemplate>