在asp.net c#4.0中完全以编程方式创建Gridview
我想创建多个gridview。我想从代码隐藏(.cs)文件中添加它们。 这是我的代码,几乎可以工作了。但是有人能发现这有什么问题吗 sample.aspx:在asp.net c#4.0中完全以编程方式创建Gridview,c#,asp.net,gridview,C#,Asp.net,Gridview,我想创建多个gridview。我想从代码隐藏(.cs)文件中添加它们。 这是我的代码,几乎可以工作了。但是有人能发现这有什么问题吗 sample.aspx: <body> <form id="form1" runat="server"> <%CreateGridView();%> </form> </body> using System; using System.
<body>
<form id="form1" runat="server">
<%CreateGridView();%>
</form>
</body>
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected GridView CreateGridView()
{
GridView gv = new GridView();
gv.ID = "_gridview1";
Queue q = new Queue();
for (int i = 0; i < 20; i++)
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
gv.Visible = true;
return gv;
}
}
<body>
<form id="form1" runat="server">
<asp:PlaceHolder id="ph" runat="server"/>
</form>
</body>
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
GridView gv = new GridView();
gv.ID = "_gridview" + i;
Queue q = new Queue();
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
ph.Controls.Add(gv);
}
}
Sample.aspx.cs:
<body>
<form id="form1" runat="server">
<%CreateGridView();%>
</form>
</body>
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected GridView CreateGridView()
{
GridView gv = new GridView();
gv.ID = "_gridview1";
Queue q = new Queue();
for (int i = 0; i < 20; i++)
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
gv.Visible = true;
return gv;
}
}
<body>
<form id="form1" runat="server">
<asp:PlaceHolder id="ph" runat="server"/>
</form>
</body>
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
GridView gv = new GridView();
gv.ID = "_gridview" + i;
Queue q = new Queue();
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
ph.Controls.Add(gv);
}
}
使用系统;
使用系统集合;
使用System.Web.UI;
使用System.Web.UI.WebControl;
公共部分类\u默认值:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的GridView CreateGridView()
{
GridView gv=新的GridView();
gv.ID=“_gridview1”;
队列q=新队列();
对于(int i=0;i<20;i++)
q、 排队(i);
gv.DataSource=q;
gv.DataBind();
gv.可见=真实;
返回gv;
}
}
示例。aspx:
<body>
<form id="form1" runat="server">
<%CreateGridView();%>
</form>
</body>
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected GridView CreateGridView()
{
GridView gv = new GridView();
gv.ID = "_gridview1";
Queue q = new Queue();
for (int i = 0; i < 20; i++)
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
gv.Visible = true;
return gv;
}
}
<body>
<form id="form1" runat="server">
<asp:PlaceHolder id="ph" runat="server"/>
</form>
</body>
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
GridView gv = new GridView();
gv.ID = "_gridview" + i;
Queue q = new Queue();
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
ph.Controls.Add(gv);
}
}
Sample.aspx.cs:
<body>
<form id="form1" runat="server">
<%CreateGridView();%>
</form>
</body>
using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected GridView CreateGridView()
{
GridView gv = new GridView();
gv.ID = "_gridview1";
Queue q = new Queue();
for (int i = 0; i < 20; i++)
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
gv.Visible = true;
return gv;
}
}
<body>
<form id="form1" runat="server">
<asp:PlaceHolder id="ph" runat="server"/>
</form>
</body>
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
GridView gv = new GridView();
gv.ID = "_gridview" + i;
Queue q = new Queue();
q.Enqueue(i);
gv.DataSource = q;
gv.DataBind();
ph.Controls.Add(gv);
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
对于(int i=0;i<20;i++)
{
GridView gv=新的GridView();
gv.ID=“_gridview”+i;
队列q=新队列();
q、 排队(i);
gv.DataSource=q;
gv.DataBind();
ph.对照品添加(gv);
}
}
但是有人能发现这有什么问题吗
- 如果GridView是可编辑的,则每次回发时都会丢失用户的更改。(可用性/功能中断)
- 它不会持续到Viewstate,并且需要在每个页面回发时重新构建网格。(性能问题)
但是,如果我列出的两个问题没有关系(它不可编辑,并且您希望在每次回发时都构建它),那么您的方法应该可以正常工作。更安全的方法在@JP Hellemons answerSwitch to MVC的代码中完美地显示出来。控件生成要容易得多。+1-这正是我所认为的“更安全的方法”,正如您在
页面_Init
中提到的@DavidStratton可能会更好!