如何从GridView中读取

时间:2014-09-23 05:04:03

标签: c# asp.net gridview

至少针对特定单元格的解决方案:GridView1.Rows [i] .Cells [j] .Text;

我构建了一个简单的CSV-Fileupload。用户上传文件后,他应该能够评估数据。当fileupload成功时,数据被加载到GridView1中,使用以下代码:(代码下面的问题)

    string[] readCSV = File.ReadAllLines(lblFilePath.Text);  
    DataTable dt = new DataTable();
    bool bSplitMe = false;
    foreach (var rLine in readCSV)
    {           

        if (bSplitMe)
        {
            string[] aSplittedLine = rLine.Split(";".ToCharArray());
            try
            {
                dt.Rows.Add(aSplittedLine);
            }
            catch(System.Exception)
            {
                txtBoxFileOut.Text = rLine;
                break;
            }                
        }
        else
        {
            if (rLine.ToLower().StartsWith("definedtestid;"))
            {
                bSplitMe = true;
                string[] aSplittedLine = rLine.Split(";".ToCharArray());

                foreach (var rCol in aSplittedLine)
                {
                    dt.Columns.Add(rCol);
                }
            }
            else 
            {
                txtBoxFileOut.Text += rLine.ToString() + "\n";
            }
        }
    }

    dt.Columns.Remove("Column1");          

    for (int i = 0; i < dt.Rows.Count; i++)                      
    {   
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            if (string.IsNullOrEmpty(dt.Rows[i][j].ToString())) 
            {
                dt.Rows[i][j] = "0";
            }
        }
    }
    GridView1.DataSource = dt;                                           
    GridView1.DataBind();

在此之后,用户应该能够选择一行并显示图表中该行的数据。 问题:我无法从我想要的单元格中读取数据,也无法从“硬编码”单元格中读取数据。

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) {

GridViewRow row = GridView1.SelectedRow;

txtOutputfield.Text = row.Cells[2].Text;
}

2 个答案:

答案 0 :(得分:0)

请检查您的手机索引。这是对的吗?例如:第三列将具有索引&#34; 2&#34;不是&#34; 3&#34;

而且,如果您使用控件存储数据,则需要找到该控件:

  

txtOutputfield.Text =   row.Cells [2] .FindControl(&#39; placeyourcontrolnamehere&#39;)文本;

答案 1 :(得分:0)

对于特定的Cell,这很好用

txtOutputfield.Text = GridView1.Rows[i].Cells[j].Text;