Что не так с этим методом C #? - PullRequest
1 голос
/ 15 июля 2010

Что не так с этим методом c #?

private void getMydatatable()
{
    DataTable dt = new DataTable();
    DataColumn dc;
    dc = new DataColumn("Name");
    dt.Columns.Add(dc);
    dc = new DataColumn("Age");
    dt.Columns.Add(dc);

    dt.Rows.Add("ARUN", "23");
    dt.Rows.Add("BALA", "23");
     GridView1.AutoGenerateColumns = false;
    GridView1.DataSource = dt;
    GridView1.DataBind();
    Page.Controls.Add(GridView1);
}

Этот метод вызывается при загрузке страницы, но мой gridview невидим почему?

<form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DlUser" runat="server">
        </asp:DropDownList>

        <asp:CheckBoxList ID="ChkUser" runat="server">
        </asp:CheckBoxList>
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </div>
</form>

Ответы [ 8 ]

4 голосов
/ 15 июля 2010

Вам нужно добавить GridView на страницу, или создаваемый вами экземпляр gv будет удален, как только вы выйдите из этого метода:

Page.Controls.Add(gv);
2 голосов
/ 15 июля 2010

Кажется, ваш GridView не находится в элементах управления страницей. Другими словами, GridView отсутствует на странице.

Вы должны добавить это так.

Page.Controls.Add(gv); 
1 голос
/ 15 июля 2010

Вы вообще не добавляете GridView на страницу. Созданный вами GridView, gv, сразу выходит из области видимости в конце метода getMydatatable().

1 голос
/ 15 июля 2010

вы объявили

GridView gv = new GridView(); 

в рамках вашего метода.вам лучше сделать его членом вашего класса GUI и добавить в контейнер элементов управления

Page.Controls.Add(gv); 

или сделать это с помощью редактора GUI

1 голос
/ 15 июля 2010

Я предполагаю, что это ASP.NET.Вы создаете новый GridView:

 GridView gv = new GridView();

и даете ему некоторые данные, но в приведенном здесь фрагменте вы никогда не поместите его на страницу.Таким образом, он выходит из области видимости при выходе из этой функции, GC очищает его, и никто никогда не видит его ...

1 голос
/ 15 июля 2010

Ты уверен, что это невидимо?Вам не нужно добавлять его в форму?

0 голосов
/ 15 июля 2010

Отображается сетка, но, поскольку вы устанавливаете AutoGenerateColumns в значение false, он фактически ничего не отображает.Также вам необходимо удалить эту строку.

Page.Controls.Add(GridView1);
0 голосов
/ 15 июля 2010

В разметке указан GridView1, поэтому с этим (обновленным) образцом кода вам не нужно его снова добавлять. Но если вы не генерируете столбцы автоматически, вы должны указать их в разметке. Или попросите сетку автоматически генерировать столбцы ...

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