在GridView中单击select时执行代码

时间:2012-05-16 19:35:06

标签: asp.net

我在GrdiView中有一个GridView和一个选择链接,当选择该项时,我希望它将内容读取到GridView下面的文本框中。我能想到的唯一方法是访问select链接的onClick函数的后台代码。问题是我不确定如何做到这一点。

更新的果酱方法:

C#代码

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
    GridView1.SelectedIndex = e.NewSelectedIndex;
    TextBox1.Text = GridView1.Rows[e.NewSelectedIndex].Cells[0].Text;
}

前码

<asp:GridView ID="GridView1" OnSelectedIndexChanging="GridView1_SelectedIndexChanging" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" 
GridLines="None">

更新我的方法:

protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
    int i = GridView1.SelectedIndex;
    ds.Tables["Comments"].Rows[i]["Comment"] = TextBox1.Text;
}

也尝试了这个,但是我收到了一个错误 - &gt; System.IndexOutOfRangeException:位置-1处没有行。

感谢。

3 个答案:

答案 0 :(得分:0)

您需要使用gridview

附加OnSelectedIndexChanged事件
<asp:GridView OnSelectedIndexChanged="GridView1_SelectedIndexChanged" />

然后在代码后面你可以做:

void GridView1_SelectedIndexChanged(Object sender, EventArgs e)
  {

    GridViewRow row = CustomersGridView.SelectedRow;// you will get the selected row
    someLabel.Text =  row.Cells[0].Text;
  }

答案 1 :(得分:0)

连接到selectedindexchanged事件后,您还需要设置一些数据键,以便从网格中检索值。请参阅示例here

void CustomersGridView_SelectedIndexChanged(Object sender, EventArgs e)
{

  // Determine the index of the selected row.
  int index = CustomersGridView.SelectedIndex;

  // Display the primary key value of the selected row.
  Message.Text = "The primary key value of the selected row is " +
    CustomersGridView.DataKeys[index].Value.ToString() + ".";

}

答案 2 :(得分:0)

最好使用网格视图的oORowCommand事件,并将命令参数和commandName传递给与属性值相同的事件。然后我认为它会起作用。