这个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>
答案 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 gv
在getMydatatable()
方法结束时立即超出范围。
答案 6 :(得分:0)
标记指定GridView1,因此使用该(更新的)代码示例,您无需再次添加它。但是,如果您不自动生成列,则应在标记中指定它们。或者告诉网格自动生成列......
答案 7 :(得分:0)
显示gridview,但由于您将AutoGenerateColumns设置为false,因此它实际上不会呈现任何内容。您还需要删除此行。
Page.Controls.Add(GridView1);