在GridTemplate中将Gridview列从ID转换为String

时间:2009-04-08 03:44:34

标签: c# asp.net gridview controls

我目前有一个显示

的Gridview

TypeID,Name,Description。

我想在gridview中显示实际的类型名称而不是TypeID。我创建了这个函数,它接收ID并返回Name,但是我在使用它时遇到了麻烦。有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”)))

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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