网格视图选择的行数据

时间:2011-07-11 10:56:25

标签: c# .net asp.net visual-studio gridview

我通过以下代码

从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的字段。

4 个答案:

答案 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" %>