Как добавить фиксированное количество строк в gridview в C #? - PullRequest
0 голосов
/ 22 сентября 2011

Я должен вставить фиксированное количество строк в gridview.Я не использую базу данных, а также не создаю строку один за другим.

Сначала я хочу 7 строк с 3 столбцами, причем первый столбец содержит текст, сохраненный в моем массиве.

Я создаю gridview как,

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Height="146px"
        OnLoad="row_created" Width="308px">
        <Columns>
            <asp:BoundField HeaderText="Day" />
            <asp:TemplateField HeaderText="Available rooms">
                <ItemTemplate>
                    <asp:TextBox ID="txt1" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Price">
                <ItemTemplate>
                    <asp:TextBox ID="txt2" runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

Ответы [ 4 ]

1 голос
/ 22 сентября 2011

почему бы не создать объект класса, а затем связать его с сеткой, установить значения по умолчанию для index, чтобы он отображался как Row Number, а все остальные члены Day, price and Rooms возвращались от пользователя

, что-то вроде:

 class MyObject
  {
     public int Index { get; set; }
     public string Day { get; set; }
     public decimal Price { get; set; }
     public string Rooms { get; set; }
   }

используйте это так

List<MyObject> lst = new List<MyObject>();
lst.Add(new MyObject { Index = 1});
lst.Add(new MyObject { Index = 2});

ps: Имена и использование только для объяснения идеи

0 голосов
/ 22 сентября 2011

Однажды я столкнулся с той же проблемой .. Этот урок помог мне решить мою проблему .. Вы можете проверить это .. http://geekswithblogs.net/dotNETvinz/archive/2009/06/04/adding-dynamic-rows-in-gridview-with-textboxes.aspx

0 голосов
/ 22 сентября 2011

Вот предлагаемое решение:

  • Определите источник данных для сетки как таблицу данных
  • И просто измените структуру объекта таблицы данных и выполните повторное связываниек сетке, если применимо
  • Пример: -

==>

public partial class WebPage : System.Web.UI.Page
{
protected DataTable GridSource
{
        get {   return ViewState["GridSource"] as DataTable;    }
        set 
        {   
            ViewState["GridSource"] = value;

            gridViewControl.DataSource = value;
            gridViewControl.DataBind();
        }
}

private void AddRow(DataRow row)
{
    // Get the lastly binded structure and data
    DataTable tableSource = this.GridSource;

    // Add row to data-table "tableSource"
    //..

    // Apply the new structure and data
    this.GridSource = tableSource;
}

// .. Add relevant implementation (methods) for remove, modify operations
//.. 
}
0 голосов
/ 22 сентября 2011

Есть много способов сделать это.

В некоторых случаях можно создать DataTable и вставить в него данные, а затем связать их с GridView.

Лучшим решением было бы создание объектов с вашими данными, сохранение их в какой-либо коллекции (список или массив подойдут), а затем привязка вашей коллекции к DataGrid. Если вы не хотите создавать класс для этого, вы можете использовать анонимные типы.

...