【问题标题】:Writing gridview to file does not work with nested for loop将gridview写入文件不适用于嵌套for循环
【发布时间】:2010-09-19 00:35:28
【问题描述】:

我有这个循环,我用它来获取 gridview 的所有行中所有单元格的值,然后将其写入 csv 文件。我的循环如下所示:

string filename = @"C:\Users\gurdip.sira\Documents\Visual Studio 2008\WebSites\Supressions\APP_DATA\surpressionstest.csv";
StreamWriter sWriter = new StreamWriter(filename);
string Str = string.Empty;

string headertext = "";

sWriter.WriteLine(headertext);

for (int i = 0; i <= (this.GridView3.Rows.Count - 1); i++)
{
    for (int j = 0; j <= (this.GridView3.Columns.Count - 1); j++)
    {
        Str = this.GridView3.Rows[i].Cells[j].Text.ToString();
        sWriter.Write(Str);
    }

sWriter.WriteLine();

} 

sWriter.Close();

这段代码的问题是,当单步执行时,第二个循环(遍历列的循环)没有开始,因为调试器没有命中这个循环,因此我的文件是空的。

关于造成这种情况的任何想法?代码本身看起来不错。

谢谢

【问题讨论】:

  • 您已验证您的网格确实包含行,对吗?

标签: c# asp.net visual-studio


【解决方案1】:

我认为内部循环应该访问 Cells,而不是列:

    for (int i = 0; i <= (this.GridView3.Rows.Count - 1); i++)
    {

        for (int j = 0; j <= (this.GridView3.Rows[i].Cells.Count - 1); j++)
        {

            Str = this.GridView3.Rows[i].Cells[j].Text.ToString();


            sWriter.Write(Str);
        }
    }

【讨论】:

    【解决方案2】:

    添加行号,如果我正确理解您的问题,您是说在调试时,您永远不会到达第 8 行。如果是这种情况,那么我希望您的问题是当您实际处理循环你的gridview中没有行。要弄清楚为什么会这样,我建议您查看您在页面发布周期中的位置

         string filename = @"C:\Users\gurdip.sira\Documents\Visual Studio 2008\WebSites\Supressions\APP_DATA\surpressionstest.csv";//1
         StreamWriter sWriter = new StreamWriter(filename);//2
         string Str = string.Empty;//3
         string headertext = ""; //4
         sWriter.WriteLine(headertext);  //5
         for (int i = 0; i <= (this.GridView3.Rows.Count - 1); i++)   //6
         {         //7
            for (int j = 0; j <= (this.GridView3.Columns.Count - 1); j++)  //8
            { //9
                   Str = this.GridView3.Rows[i].Cells[j].Text.ToString();//10
                   sWriter.Write(Str);//11
            }//12
            sWriter.WriteLine();//13
          }//14
          sWriter.Close();//15
    }//16
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多