0

製品リストの行とセルを作成するコードを以下に示します。追加の製品情報を取得するために使用したいボタンがあります。基本的に、ユーザーは何かを検索し、限られた結果しか表示しません。ユーザーがボタンをクリックすると、別の処理を行うメソッドが呼び出されます。

そのボタンを渡してIDなどをメソッドに渡すにはどうすればよいですか?

を試しました.Clickが、メソッドを呼び出すことができませんでした。現在、このメソッドはメッセージ ボックスのみを表示します。

for (rowCtr = 1; rowCtr <= rowCnt; rowCtr++)
{
    // Create new row and add it to the table.
    TableRow tRow = new TableRow();
    Table1.Rows.Add(tRow);
    for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
    {
        // Create a new cell and add it to the row.
        TableCell tCell = new TableCell();

        if (rowCtr == 1 && cellCtr == 1)
        {
            Image ProductImage = new Image();
            ProductImage.Height = 75;
            ProductImage.Width = 75;
            tCell.RowSpan = 5;
            tCell.Controls.Add(ProductImage);
            tRow.Cells.Add(tCell);
        }

        if (rowCtr == 1 && cellCtr == 2)
        {
            tCell.Text = "Title: Title of Product";
            tRow.Cells.Add(tCell);
        }

        if (rowCtr == 2 && cellCtr == 2)
        {
            tCell.Text = "Weight (lbs): 54";
            tRow.Cells.Add(tCell);
        }

        if (rowCtr == 4 && cellCtr == 2)
        {
            Button getOfferButton = new Button();
            getOfferButton.Width = 100;
            getOfferButton.Text = "Get Offer";
            getOfferButton.Click += new EventHandler(getOffer);
            tCell.Controls.Add(getOfferButton);

            tRow.Cells.Add(tCell);
        }

    }
}
4

2 に答える 2

1

<asp:GridView />これをマークアップで生成するのではなく、コントロールを使用する必要があると思います。これを処理する 1 つの方法は、OnCommandイベントを使用して ID を引数として渡すことです。

getOfferButton.Click += new CommandEventHandler(RowButton_OnCommand);
getOfferButton.CommandArgument = "123";

そしてハンドラー

protected void RowButton_OnCommand(object sender, CommandEventArgs e)
{
   string id = e.CommandArgument.ToString(); //could convert this to integer

}
于 2012-11-03T02:22:35.880 に答える
0

最初に、コード ビハインドからオブジェクト リストを返す必要があります。次に、名前が何であれ、ur BLL または BO をインポートする必要があります。

 '<asp:Repeater ID="rptGrpAcc" runat="server" OnItemDataBound="rptAccident_ItemDataBound">
                    <ItemTemplate>
                        <tr style="cursor: pointer" onclick="SelectGrpAcc(this,<%#Eval("ID"%>);">
              </ItemTemplate>
  </asp:Repeter>'

     <asp:HiddenField ID="hdnRowNum" runat="server" />
           <asp:Button ID="btnShowRptDtl" runat="server" Text="ShowRptDtl" Style="display: none"
             OnClick="btnShowRptDtl_Click" CausesValidation="false"/>

      ' <script type="text/javascript">
         /*---------------for selecting row of repeator--------*/
          function SelectGrpAcc(obj, ID) {
        
          document.getElementById("<%=hdnRowNum.ClientID %>").value = ID;
         document.getElementById("<%=btnShowRptDtl.ClientID %>").click();
    }'


'protected void btnShowRptDtl_Click(object sender, EventArgs e)
       {
           btnAdd.Text= "update";
      
          int Sn = ClsConvertTo.Int32(hdnRowNum.Value); // this is your ID in code behind 
       //   add logic here
       }'
于 2014-11-21T11:03:23.940 に答える