如何从Gridview列获取值

时间:2012-10-22 17:05:48

标签: asp.net gridview

我有一个可编辑的GridView,可将其内容通过电子邮件发送给所有公司。 Gridview的第一行包含公司名称(每行只有1个名称)。我想根据第一行中的公司名称将Gridview通过电子邮件发送到特定的电子邮件地址。例如 - 如果第一行等于companyname1,则将电子邮件发送给公司1;如果第一行等于公司二,那么将电子邮件发送给公司二。我尝试了以下方法:

// C# - 按钮背后的代码片段

foreach (GridView item in gvCompanies.Rows)
        {
            if (item.SelectedRow.Cells[1].Text == "company1")
            {
                txtEmailAddresses.Text = "company1@gmail.com";
            }
            else if (item.SelectedRow.Cells[1].Text == "company2")
            {
                txtEmailAddresses.Text = "company2.com";
            }

            else if (item.SelectedRow.Cells[1].Text == "company3")
            {
                txtEmailAddresses.Text = "company3@aol.com";
            }

            else if (item.SelectedRow.Cells[1].Text == "company4")
            {
                txtEmailAddresses.Text = "company@aol.com";
            }
        }

......有人可以就这里的错误提供一些指导吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情......

protected void gvCompanies_SelectedIndexChanged(object sender, EventArgs e)
{
 //for (int i = 0; i < gvCompanies.Rows.Count; i++)
 //       {
            if (gvCompanies.SelectedIndex == i)
            {
                String compName = gvCompanies.Rows[i].Cells[1].Text; //Gets the data cell value from the grid to string
                if(compName == "company1")
                {
                txtEmailAddresses.Text = "company1@gmail.com";
                }
                else if(compName == "company2")
                {
                txtEmailAddresses.Text = "company2@gmail.com";
                }
                ........and so on
            }
      // }
}

您需要设置gridview的以下2个属性。

1] AutoGenerateSelectButton="true"
2] onselectedindexchanged="GridView1_SelectedIndexChanged"