我目前有一个显示
的GridviewTypeID,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”)))
答案 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”) %>, <%# 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)
在您用于填充网格的行类上创建只读属性,并获取此属性以返回函数的结果。