【问题标题】:Grid binding in a for loopfor循环中的网格绑定
【发布时间】:2011-01-20 12:18:05
【问题描述】:

我正在开发一个网站,我需要在其中多次绑定网格{在 for 循环内} 正如预期的那样,网格会覆盖以前的值并预览最新的迭代结果

您可能需要代码来获得帮助。这里是:-

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();
    }

【问题讨论】:

  • 你需要数据绑定做什么?
  • 我不确定我是否理解您想要的,如果您只想显示最新绑定的结果,您只能在最后一次迭代后调用 DataBind()...
  • 我错过了这里的重点吗?为什么要在 for 循环中绑定 GridView? Gridview 一次只能显示 1 个集合,因此多次绑定它会导致性能不佳。
  • -1 表示如此丑陋的错误代码 ;)
  • “我需要多次绑定一个网格”是什么意思??你能解释一下你想如何绑定 GridView2。

标签: c# asp.net gridview


【解决方案1】:

您需要将您的 List 声明和 GridView 分配移到 for 循环之外 - 现在您每次迭代都创建一个新 List,您只想创建一个,然后将其绑定到 Grid.. 例如:

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();

【讨论】:

  • 出现一个错误,如下所示:'System.Collections.Generic.List.Add(business.clspluginsprp)'的最佳重载方法匹配有一些无效参数,而另一个错误是:参数 1:无法从 'System.Collections.Generic.List' 转换为 'business.clspluginsprp'
【解决方案2】:

不能绑定两次。然后调用 DataBind()。控件根据当前数据源重建其内容。旧内容被丢弃。因此,您应该使用包含所有数据的列表,将其分配给 DataSource,然后调用 DataBind()

【讨论】:

    【解决方案3】:

    试试这个。

    这种方法可能对您有所帮助。从代码中获取概念并以您的方式实现。

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-23
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多