Как разместить другое значение в GridView, если источником является DataTable? - PullRequest
0 голосов
/ 04 августа 2011

Прежде всего, у меня есть DataTable, который хранит данные в нескольких полях. В одном из этих полей хранится значение, которое может быть равно «1», «0» или «-1».

Я пытаюсь заполнить GridView всеми данными, содержащимися в этой таблице данных, за исключением ранее упомянутого поля. Вместо этого поля я хотел бы отобразить столбец, который показывает другой значок в зависимости от значения (0, 1 или -1).

Другими словами, если строка содержит значение «0» в этом поле в DataTable, я бы хотел, чтобы значок красного круга отображался в эквивалентной ячейке в GridView.

Может ли кто-нибудь любезно объяснить, как это может быть достигнуто? Ниже приведен код, который может помочь объяснить ситуацию дальше.

GridView заполнен данными, содержащимися в DataTable.

source = new DataSource();
TableGridView.DataSource = source.FillTable();
TableGridView.DataBind();

Что делать после этого?

РЕДАКТИРОВАТЬ: Решение добавлено в качестве комментария ниже

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Решено: Я создал TemplateField в коде ASP.NET, а остальные поля программно в классе .cs. Затем я добавил кусок кода, который переключает порядок столбцов. Надеюсь, кто-то найдет это полезным.

1 голос
/ 04 августа 2011

Ну, есть разные подходы:

1) вы можете добавить поле в DataTable для изображения и заполнить его URL-адресом изображения, которое соответствует значению.Добавьте изображение в GridView и установите его ImageUrl в этом поле.

2) Добавьте поле шаблона в GridView и добавьте 3 изображения.В свойстве Visible каждого изображения вы устанавливаете что-то вроде <% (int)Eval("MyNumericValue") == x %> (x равно 0, 1 или -1).Таким образом, отображается только 1 изображение, остальные скрыты (даже не отображаются).

с бедра:

<TemplateField>
    <ItemTemplate>
         <asp:image runat="server" imageurl="~/images/0.png" Visible='<%# (int)Eval("MyNumericValue") == 0 %>' />                
         <asp:image runat="server" imageurl="~/images/1.png" Visible='<%# (int)Eval("MyNumericValue") == 1 %>' />
         <asp:image runat="server" imageurl="~/images/-1.png" Visible='<%# (int)Eval("MyNumericValue") == -1 %>' />
    </ItemTemplate>
</TemplateField>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...