When the Test button is pressed I want to get the values in the TextBoxes. There are two options:-
Option 1
Set the CommandArgument of the Test button to hold a value indicating the row number. You need to add the following to the Test button's HTML definition
CommandArgument='<%# Container.DataItemIndex %>'
IE7B2 does not render the text above correctly, Firefox is OK, it should look like this :
Then you can get the Row and TextBox contents using this code
protected void GridView1_RowCommand (object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToLower () == "test")
{
int rowindex = int.Parse (e.CommandArgument.ToString ());
GridViewRow row1 = GridView1.Rows[rowindex];
TextBox tb_percent1 = row1.FindControl ("TextBox1") as TextBox;
TextBox tb_value1 = row1.FindControl ("TextBox2") as TextBox;
TextBox tb_month1 = row1.FindControl ("TextBox3") as TextBox;
TextBox tb_year1 = row1.FindControl ("TextBox4") as TextBox;
Option 2
You can use the following code. With this option you do not need to set the CommandArgument on the button.
protected void GridView1_RowCommand (object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToLower () == "test")
{
GridViewRow row2 = (GridViewRow) ((Control) e.CommandSource).Parent.Parent;
TextBox tb_percent2 = row2.FindControl ("TextBox1") as TextBox;
TextBox tb_value2 = row2.FindControl ("TextBox2") as TextBox;
TextBox tb_month2 = row2.FindControl ("TextBox3") as TextBox;
TextBox tb_year2 = row2.FindControl ("TextBox4") as TextBox;
No comments:
Post a Comment