Заполните gridview во время выполнения - PullRequest
1 голос
/ 13 ноября 2011

У меня есть сетка, которую я хочу заполнить данными в некоторых общих списках.Я использовал «DataTable» в качестве источника данных, который содержит нужные мне столбцы (DataColumn).

GridView1.DataSource = CreateDataTable();

Моя проблема в том, что мой gridview содержит HTML-теги, поэтому мне нужно что-то вроде

myBoundedField.HtmlEncode = false;

Мне нужно изменить заголовок столбцов, и все это невозможно, если я использую «DataColumn».Я нашел некоторый код, говорящий о BoundField.почему / когда я должен использовать BoundField вместо этого?в чем выгода?

Ответы [ 3 ]

2 голосов
/ 14 ноября 2011

Создайте себе GridView Column Объекты и добавьте их в Gridview's Columns collection. и вы можете создать свой собственный ItemTemplates для столбцов для ваших пользовательских значений так же, как вы хотите манипулировать HTML здесь.

    GridView gvDynamicArticle = new GridView();

    gvDynamicArticle.Width = Unit.Pixel(700);

    gvDynamicArticle.BorderWidth = Unit.Pixel(0);
    gvDynamicArticle.Caption = "Report View";
    gvDynamicArticle.AutoGenerateColumns = false;

    gvDynamicArticle.ShowFooter = true;

    TemplateField tf = null;

    tf = new TemplateField();

    tf.HeaderTemplate = new DynamicGridViewTextTemplate("ArticleID", DataControlRowType.Header);

    tf.ItemTemplate = new DynamicGridViewTextTemplate("ArticleID", DataControlRowType.DataRow);

    tf.FooterTemplate = new DynamicGridViewTextTemplate(DataControlRowType.Footer, ds.Tables[i].Rows.Count);              

  gvDynamicArticle.Columns.Add(tf);

перейдите по этой ссылке для получения дополнительной информации:

http://www.codedigest.com/Articles/ASPNET/168_Create_Dynamic_GridView_Control_in_C_ASPNet.aspx

http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

http://www.dotnetfunda.com/articles/article1400-how-to-generate-gridview-columns-dynamically-based-on-user-selection.aspx

Добавьте ограниченный столбец, и вы сможете получить доступ к данным в событии rowcreated, а затем использовать server.htmlDeocde( <html encoded field value>) для отображения в сетке. Таким же образом вы можете сохранить HTML-код в строке команды с помощью HtmlEncode( <save html field value> ), используя это событие.

надеюсь, это поможет вам ..

1 голос
/ 14 ноября 2011

В HTML определите ваш GridView следующим образом:

<asp:GriVview ... AutoGenerateColumns="false" runat="server">
  <Columns>
    <asp:BoundField DataField="CustomerID" HeaderText="Customer ID" />
    <asp:BoundField DataField="CompanyName" HtmlEncode="false" HeaderText="Customer Name" />
    ...
  </Columns>
</asp:GridView>

(адаптировано из этого примера )

Должно быть очевидно, как можно указать заголовки столбцов (HeaderText), а также кодировку HTML (HtmlEncode) для каждого столбца. DataField указывает имя столбца в ваших таблицах данных.

1 голос
/ 14 ноября 2011

Вы можете динамически создавать столбцы для сетки, используя new Column () и присваивая ей значения.

Дайте мне знать, если вы хотите, чтобы я поддержал его с помощью кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...