这个c#方法有什么问题?

时间:2010-07-15 07:35:48

标签: c# asp.net gridview datatable

这个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 个答案:

答案 0 :(得分:4)

您需要将GridView添加到页面中,或者在您离开此方法后,您创建的gv实例将被垃圾回收:

Page.Controls.Add(gv);

答案 1 :(得分:2)

看起来你的GridView不在页面控件中。换句话说,GridView不在页面上。

您需要像这样添加它。

Page.Controls.Add(gv); 

答案 2 :(得分:1)

你确定它是看不见的吗?你不必将它添加到表单中吗?

答案 3 :(得分:1)

我假设这是ASP.NET。您创建了一个新的GridView

 GridView gv = new GridView();

并给它一些数据,但在这里的片段中你从未真正把它放在页面上。因此,当此功能退出时,它会超出范围,GC会清理它,并且没有人看到它......

答案 4 :(得分:1)

你宣布了

GridView gv = new GridView(); 

在您的方法范围内。 你最好把它变成你的GUI类的成员并添加到控件容器

Page.Controls.Add(gv); 

或通过GUI编辑器

进行

答案 5 :(得分:1)

您根本没有将GridView添加到页面中。您创建的GridView gvgetMydatatable()方法结束时立即超出范围。

答案 6 :(得分:0)

标记指定GridView1,因此使用该(更新的)代码示例,您无需再次添加它。但是,如果您不自动生成列,则应在标记中指定它们。或者告诉网格自动生成列......

答案 7 :(得分:0)

显示gridview,但由于您将AutoGenerateColumns设置为false,因此它实际上不会呈现任何内容。您还需要删除此行。

Page.Controls.Add(GridView1);