2016-10-30 8 views
0

テーブルがあり、各行にボタンがあります。ボタンをクリックすると、その行の最初の列から値を取得します。これは私のコードです、どうすればいいのですか?ありがとうございますテーブルCのセルから値を取得する方法

foreach (var c in list) 
     { 
      TableRow row = new TableRow(); 

      TableCell c0 = new TableCell(); 
      c0.Text = string.Format("<img src='"+c.Movie_poster+ "'/>"); 
      TableCell c1 = new TableCell(); 
      c1.Text = c.Name; 
      TableCell c2 = new TableCell(); 
      c2.Text = c.Date.ToStirng(); 
      TableCell c3 = new TableCell(); 
      c3.Text = c.desc; 
      TableCell c4 = new TableCell(); 
      c4.Text = c.genre; 
      TableCell c5 = new TableCell(); 


      //Add each string to cell in row 
      row.Cells.Add(c0); 
      row.Cells.Add(c1); 
      row.Cells.Add(c2); 
      row.Cells.Add(c3); 
      row.Cells.Add(c4); 
      row.Cells.Add(c5); 

      //Add the row to the table 
      Table.Rows.Add(row); 
      Button getname = new Button(); 
      getname.Text = "Reserve"; 
      getname.Click+= new EventHandler(getname_Click); 

      c5.Controls.Add(getname); 

     } 


    } 
    protected void reserve_Click(object sender,EventArgs e) 
    { 
     Button btn = (Button)sender; 
     TableRow row = (TableRow)btn. 
     string name = row.Cells[1].Text; 
     lbl.Text = name; 

    } 

答えて

0

[編集]ボタンを作成する前に、行番号で新しい属性を書き込む必要があります。

//Add the row to the table 
    Table.Rows.Add(row); 
    Button getname = new Button(); 
    getname.Attributes.Add("idRow", idrow); 
    idrow += 1; 
    getname.Text = "Reserve"; 
    getname.Click += new EventHandler(getname_Click); 

次にあなたがreserve_Clickにあなたがボタンに保存されたIDを持つ行を取得する必要は

Button btn = (Button)sender; 
int idRow = int.Parse(btn.Attributes["id"]); 
TableRow row = t.Rows[idRow]; 
0

あなたはCommandArgumentとしてボタンに列の値をバインドすることができます属性。

Button getname = new Button(); 
getname.Text = "Reserve"; 
getname.CommandName = "Reserve"; 
getname.CommandArgument = "Column Value"; 
getname.Command += new CommandEventHandler(Button1_Command); 

そしてボタンコマンドで

protected void Button1_Command(object sender, CommandEventArgs e) 
{ 
    if (e.CommandName == "Reserve") 
    { 
     string columnValue = e.CommandArgument.ToString(); 
    } 
} 
+0

は、返信いただきありがとうございます。出来た。私は "列の値"をc.Nameに置き換えました。再度、感謝します。 – jdk

関連する問題