从任何GridView行获取值(不仅选中)

时间:2017-09-18 20:24:46

标签: c# asp.net gridview

我正在尝试使用此代码。但它不起作用。有什么问题?

问题图片:

enter image description here

protected void Button1_Click(object sender, EventArgs e)
{
    for (int i = 0; i < GridView4.Rows.Count; i++)
    {
        TextBox2.Text += GridView4.Rows[i].Cells[1].Text.ToString() + ", ";
    }
}

3 个答案:

答案 0 :(得分:0)

  • 您必须在GridView中FindControl并投射它,例如Label
  • 将值添加到List<string>
  • 以逗号,
  • 加入列表

解决方法:

List<string> valueArray = new List<string>();
for (int i = 0; i < GridView4.Rows.Count; i++)
{
    // Label1 is ID of your control in GridView
    string value = ((Label)GridView4.Rows[i].Cells[1].FindControl("Label1")).Text;
    valueArray.Add(value);
}
TextBox2.Text = string.Join<string>(",", valueArray); // seperate values by ,

答案 1 :(得分:0)

protected void Button_SonucKaydet_Click(object sender, EventArgs e)
{// I did with Asif.Ali and  Alex Kudryashev's opinion.
    try
    {    
         OleDbConnection con = new OleDbConnection(VTYolu);
         con.Open();
         foreach (GridViewRow row in GridView4.Rows)
         {
             Label innerLabel = (Label)row.FindControl("Label1x");
             DropDownList innerDropdown = (DropDownList)row.FindControl("DropDownList1x");
             TextBox innerTextBox = (TextBox)row.FindControl("TextBox4x");

             string Ekle1 = "UPDATE Dat_Odev SET OdevKontrolTarihi=@Tarih, OdevSonucu=@Sonuc, SonucAciklama=@Aciklama WHERE Kimlik=@id";
             OleDbCommand Komut1 = new OleDbCommand(Ekle1, con);
             Komut1.Parameters.AddWithValue("@Tarih", DateTime.Now.ToString());
             Komut1.Parameters.AddWithValue("@Sonuc", innerDropdown.SelectedValue);
             Komut1.Parameters.AddWithValue("@Aciklama", innerTextBox.Text);
             Komut1.Parameters.AddWithValue("@id", Int32.Parse(innerLabel.Text));
             Komut1.ExecuteNonQuery();
        }
        con.Close();
        GridView1.DataBind();
    }
    catch (Exception HataKodu)
    {//Hata oluştuğunda çalışacak kodlar
        Label_Hata.Visible = true;
        Label_Hata.Text = "Ödev sonuçlarını kaydederken bir hata oluştu. Veya Veritabanı hatası. Sistem yöneticisi ile irtibata geçiniz. (Hata kodu: " + HataKodu + ")";
    }
}

答案 2 :(得分:-1)

使用以下行

 TextBox2.Text += GridView4.Rows[i].Cells[1].Value.ToString() + ", ";