Почему в GridView есть дополнительная строка? - PullRequest
0 голосов
/ 15 марта 2012

Я пытаюсь привязать сетку к следующему источнику данных. Почему я получаю дополнительную строку там, когда в ней нет данных? Количество строк также является правильным, я вижу это при отладке.

Grid snapshot

 Object[] users = new Object[100];
                        int i = 0;
                        while (reader.Read())
                        {
                              users[i++] =  new  {
                                                userid= reader.GetString(0),
                                                group = reader.GetString(1),
                                                subgroup = reader.GetString(2),
                                              };
                        }
                        gridview_UserAccess.DataSource = users;
                        gridview_UserAccess.DataBind();

<asp:GridView ID="gridview_UserAccess" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
   <Columns>
           <asp:TemplateField HeaderText="Select">                   
                <ItemTemplate>
                    <asp:CheckBox ID="chkbox_Select" runat="server" />
                </ItemTemplate>
           </asp:TemplateField>    
</Columns>

        <AlternatingRowStyle BackColor="White" />            
        <EditRowStyle BackColor="#2461BF" />
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="#EFF3FB" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />

  </asp:GridView> 

Ответы [ 2 ]

3 голосов
/ 15 марта 2012

Это потому, что у вас есть пустая строка в вашем файле. Из-за этого читателя. Read () верно. Идентификатор пользователя, группа и подгруппа являются пустыми строками. Таким образом, пользовательский объект создается с пустыми значениями, ведущими к пустой строке.

0 голосов
/ 15 марта 2012

Возможно, потому что вы увеличиваете i при первом чтении, оставляя пользователей [0] пустыми?Попробуйте изменить свой код следующим образом:

int i = -1;
while (reader.Read())
{
    users[i++] =  new  {
    userid= reader.GetString(0),
    group = reader.GetString(1),
    subgroup = reader.GetString(2),
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...