Преобразовать столбец Gridview из идентификатора в строку в ItemTemplate - PullRequest
0 голосов
/ 08 апреля 2009

У меня сейчас есть Gridview, который отображает

TypeID, Имя, Описание.

Я хотел бы отобразить фактическое имя типа вместо TypeID в виде сетки. Я создал эту функцию, которая принимает идентификатор и возвращает имя, но у меня возникают проблемы с его использованием. Существует 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 ]

1 голос
/ 08 апреля 2009

У вас есть 'bind / eval' и вызов метода наизнанку.
См. Использование метода внутри DataGrid или 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 голос
/ 08 апреля 2009

Вы ограничены тегом ярлыка? Если нет, то, расширяя ответ Дэвида Хаста, попробуйте следующее:

<ItemTemplate>
    <%#GetGenericTypeByID(Eval(Generic_Type_ID))%>
</ItemTemplate>
0 голосов
/ 08 апреля 2009

Создайте свойство только для чтения в классе строк, который вы используете для заполнения сетки, и получите это свойство, чтобы возвращать результаты вашей функции.

...