Отображение записей в таблице в asp.net - PullRequest
1 голос
/ 07 июня 2011
        conn.Open();

        TableRow r = new TableRow();
        TableCell c = new TableCell();

        SqlDataReader reader = comm.ExecuteReader();


          while (reader.Read())
        {
              c.Controls.Add(new LiteralControl(reader["Name"].ToString()));
                r.Cells.Add(c);
                Table1.Rows.Add(r);

                c.Controls.Add(new LiteralControl(reader["RollID"].ToString()));
                r.Cells.Add(c);
                Table1.Rows.Add(r);
        }

Я использую приведенный выше код для печати данных в таблице. Но все поля идут в одну строку (строка не увеличивается). Можете ли вы сказать мне, как отображать в несколько строк.

Ответы [ 3 ]

0 голосов
/ 07 июня 2011

Создать новый экземпляр TableRow для каждой строки. Вы просто создаете 1 экземпляр перед повторением набора результатов.

0 голосов
/ 07 июня 2011

Переместите свою конструкцию переменных TableCell и TableRow внутри цикла WHILE, вверху. Таким образом, вы получите новую строку и новую ячейку для каждой записи в считывателе.

Рассмотрим код, который выглядит следующим образом (комментарии мои):

    conn.Open();

    // MOVE THESE
    /**
    TableRow r = new TableRow();
    TableCell c = new TableCell();
    **/

    SqlDataReader reader = comm.ExecuteReader();


      while (reader.Read())
    {

          // TO HERE..  so that a new row and cell are created for each record in your reader
          TableRow r = new TableRow();
          TableCell c = new TableCell();

          c.Controls.Add(new LiteralControl(reader["Name"].ToString()));
            r.Cells.Add(c);
            //Table1.Rows.Add(r);   -- ADD THE ROW AFTER THE SECOND FIELD... THEN YOU HAVE 2 COLUMNS

            c.Controls.Add(new LiteralControl(reader["RollID"].ToString()));
            c = new TableCell(); // CREATE A NEW CELL, FOR A NEW COLUMN
            r.Cells.Add(c);
            Table1.Rows.Add(r);
    }
0 голосов
/ 07 июня 2011

В данный момент вы создаете одну строку и ячейку и добавляете все свои элементы управления в эту отдельную ячейку.

Хотя то, что вы хотите, безусловно, возможно (просто убедитесь, что вы создаете новую ячейку для каждого элемента данных, который вы извлекаете из своего считывателя, и новую строку для каждой итерации цикла while), есть ли причина, по которой вы не ' t использовать что-то вроде GridView для представления этого контента?

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