2

最初の質問:

スナックと価格のリストを含むグリッドビュー「gvSnacks」があります。グリッドビューの最初の列は、「btnAdd」ボタンのあるテンプレート フィールドです。

追加ボタンの 1 つがクリックされたときに、その行の値を整数に割り当てて、その行から追加のデータを取得できるようにします。

これは私が持っているものですが、行き止まりになりました。

protected void btnAdd_Click(object sender, EventArgs e)
{
    int intRow = gvSnacks.SelectedRow.RowIndex;

    string strDescription = gvSnacks.Rows[intRow].Cells[2].Text;
    string strPrice = gvSnacks.Rows[intRow].Cells[3].Text;
}

どんな助けにも感謝します!

4

1 に答える 1

4

RowCommand Event を使用する必要がある場合があります。

public event GridViewCommandEventHandler RowCommand

これは、このイベントの MSDN リンクです

ボタンには CommandName 属性が必要で、行の値をコマンド引数に入れることができます:

 void ContactsGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {
    // If multiple buttons are used in a GridView control, use the
    // CommandName property to determine which button was clicked.
    if(e.CommandName=="Add")
    {
      // Convert the row index stored in the CommandArgument
      // property to an Integer.
      int index = Convert.ToInt32(e.CommandArgument);

      // Retrieve the row that contains the button clicked 
      // by the user from the Rows collection.
      GridViewRow row = ContactsGridView.Rows[index];

      // Create a new ListItem object for the contact in the row.     
      ListItem item = new ListItem();
      item.Text = Server.HtmlDecode(row.Cells[2].Text) + " " +
        Server.HtmlDecode(row.Cells[3].Text);

      // If the contact is not already in the ListBox, add the ListItem 
      // object to the Items collection of the ListBox control. 
      if (!ContactsListBox.Items.Contains(item))
      {
        ContactsListBox.Items.Add(item);
      }
    }
  }    
于 2012-12-06T22:03:16.007 に答える