C# for循环中的网格绑定
我正在开发一个网站,我需要在其中绑定网格几次{在for循环中} 正如预期的那样,网格将覆盖以前的值并预览最新的迭代结果 您可能需要代码以获得帮助。代码如下:-C# for循环中的网格绑定,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在开发一个网站,我需要在其中绑定网格几次{在for循环中} 正如预期的那样,网格将覆盖以前的值并预览最新的迭代结果 您可能需要代码以获得帮助。代码如下:- for (Int32 i = 0; i < k.Length; i++) { business.clsplugins obj = new business.clsplugins(); List<business.clspluginsprp> objprp = new List<
for (Int32 i = 0; i < k.Length; i++)
{
business.clsplugins obj = new business.clsplugins();
List<business.clspluginsprp> objprp = new List<business.clspluginsprp>();
Int32 z = Convert.ToInt32(k.GetValue(i));
objprp = obj.fnd_plugins(z);
GridView2.DataSource = objprp;
GridView2.DataBind();
}
for(Int32 i=0;i
Cou不能绑定两次。然后调用DataBind()。控件将基于当前数据源重新生成其内容。旧内容被丢弃。因此,您应该使用一个包含所有数据的列表,将其分配给DataSource,然后调用DataBind()您需要将列表声明和GridView分配移动到for循环之外-现在,您每次迭代都要创建一个新列表,您只需创建一个,然后将其绑定到网格。。例如:
List<business.clspluginsprp> objprp = new List<business.clspluginsprp>();
business.clsplugins obj = new business.clsplugins();
for (Int32 i = 0; i < k.Length; i++)
{
Int32 z = Convert.ToInt32(k.GetValue(i));
objprp.Add(obj.fnd_plugins(z));
}
GridView2.DataSource = objprp;
GridView2.DataBind();
List objprp=new List();
business.clsplugins obj=新建business.clsplugins();
对于(Int32 i=0;i
试试这个
这种方法可能会对您有所帮助。从代码中获取概念并以您的方式实现
ASPX:
<asp:PlaceHolder ID="plcSample" runat="server">
</asp:PlaceHolder>
protected void Page_Load(object sender, EventArgs e)
{
DataSet dsSample = GetDataSet();
GridView gvSample;
if (dsSample.Tables.Count > 0 && dsSample.Tables[0].Rows.Count > 0)
{
for (int iCount = 0; iCount < dsSample.Tables.Count; iCount++)
{
gvSample = new GridView();
gvSample.DataSource = dsSample.Tables[iCount];
gvSample.DataBind();
plcSample.Controls.Add(gvSample);
}
}
}
private DataSet GetDataSet()
{
DataSet ds = new DataSet();
DataTable dt;
dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("Code", typeof(string)));
DataRow dr;
dr = dt.NewRow();
dr["ID"] = 1;
dr["Code"] = "KK";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 2;
dr["Code"] = "Karan";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("Code", typeof(string)));
dr = dt.NewRow();
dr["ID"] = 1;
dr["Code"] = "AA";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 2;
dr["Code"] = "Arun";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
return ds;
}
代码隐藏:
<asp:PlaceHolder ID="plcSample" runat="server">
</asp:PlaceHolder>
protected void Page_Load(object sender, EventArgs e)
{
DataSet dsSample = GetDataSet();
GridView gvSample;
if (dsSample.Tables.Count > 0 && dsSample.Tables[0].Rows.Count > 0)
{
for (int iCount = 0; iCount < dsSample.Tables.Count; iCount++)
{
gvSample = new GridView();
gvSample.DataSource = dsSample.Tables[iCount];
gvSample.DataBind();
plcSample.Controls.Add(gvSample);
}
}
}
private DataSet GetDataSet()
{
DataSet ds = new DataSet();
DataTable dt;
dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("Code", typeof(string)));
DataRow dr;
dr = dt.NewRow();
dr["ID"] = 1;
dr["Code"] = "KK";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 2;
dr["Code"] = "Karan";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("Code", typeof(string)));
dr = dt.NewRow();
dr["ID"] = 1;
dr["Code"] = "AA";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 2;
dr["Code"] = "Arun";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
return ds;
}
受保护的无效页面加载(对象发送方,事件参数e)
{
数据集dsSample=GetDataSet();
网格视图样本;
if(dsSample.Tables.Count>0&&dsSample.Tables[0].Rows.Count>0)
{
对于(int-iCount=0;iCount
您到底需要数据绑定做什么?我不确定我是否理解您想要什么,如果您只想显示最新绑定的结果,您只能在最后一次迭代后调用databind()。我是否错过了这里的要点?为什么要在for循环中绑定GridView?Gridview一次只能显示1个集合,因此多次绑定它会导致性能下降。-1对于如此丑陋的错误代码;)“我需要多次绑定一个网格”是什么意思?你能再解释一下如何绑定GridView2吗?出现了一个错误,它是“System.Collections.Generic.List.Add(business.clspluginsprp)的最佳重载方法匹配项'有一些无效的参数,而另一个错误是:参数1:无法从'System.Collections.Generic.List'转换为'business.clspluginsprp'