我通过以下代码
从rowcommand事件的gridview获取数据protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "editproject")
{
string rowindex = e.CommandArgument.ToString();
int index = int.Parse(rowindex);
GridViewRow row = GridView2.Rows[index];
Label6.Text = row.Cells[1].Text;
}
}
但它只会给出gridview行中可见字段的数据。如何才能获得不可见但绑定到gridview的字段。
答案 0 :(得分:2)
您无法获得设置为不可见的值,因为这些值不是在客户端呈现的,也不能在服务器端获取。
或者,您可以将值存储在隐藏字段中,然后您可以从隐藏字段中获取它。
答案 1 :(得分:1)
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].Value.ToString ());
}
答案 2 :(得分:0)
您可以获取不可见的绑定元素,但是您可以从数据源获取值。例如,您将数据保存在分配给网格的数据表中。将此数据表存储在view-state和on row命令中获取数据 - 该行的键和通过数据表检索的值
答案 3 :(得分:0)
你可以得到一个类似命令的按钮,它在gridview中是不可见的,看看这个:---
按钮的错误可见性要求您更改EnableEventValidation="False"
default.aspx
private void grd_bind()
{
SqlDataAdapter adp = new SqlDataAdapter("select* from tbbook", ConfigurationManager.ConnectionStrings["cn"].ConnectionString);
DataSet ds = new DataSet();
adp.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lk = (LinkButton)(e.Row.Cells[5].Controls[0]);
e.Row.Attributes["Onclick"] = ClientScript.GetPostBackClientHyperlink(lk, "");
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
TextBox1.Text = GridView1.SelectedRow.Cells[0].Text;
TextBox2.Text = GridView1.SelectedRow.Cells[1].Text;
TextBox3.Text = GridView1.SelectedRow.Cells[2].Text;
TextBox4.Text = GridView1.SelectedRow.Cells[3].Text;
TextBox5.Text = GridView1.SelectedRow.Cells[4].Text;
}
然后在default.aspx
页面中设置EnableEventValidation
<%@ Page Language="VB" EnableEventValidation="false" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>