Кнопка в ячейке таблицы не вызывает событие asp.net c # - PullRequest
0 голосов
/ 28 ноября 2018

Не нашел конкретного ответа по этому поводу, так что вот так ... Я создаю таблицу HTML в цикле foreach, где каждый раз он создает строку для своего соответствующего порядка.У меня есть две кнопки, как показано в приведенном ниже коде:

 private void CreateOrderTable(List<Order> orders)
    {
        OrderModel model = new OrderModel();

        foreach (Order order in orders)
        {
            Order orderN = new Order();



            //Create HTML Table
            Table table = new Table { CssClass = "cartTable" };
            TableRow a = new TableRow();
            TableRow b = new TableRow();

            //Crear cells for row a
            TableCell a1 = new TableCell { RowSpan = 2, Width = 50 };
            TableCell a2 = new TableCell
            {
                Text = string.Format(order.OrderID.ToString()),
                HorizontalAlign = HorizontalAlign.Left,
                Width = 350
            };
            TableCell a3 = new TableCell { Text = "Monto:<hr/>" };
            TableCell a4 = new TableCell { Text = "Restaurante:<hr/>" };
            TableCell a5 = new TableCell { Text = "Estado<hr/>" };
            TableCell a6 = new TableCell { Text = "Tarjeta<hr/>" };
            TableCell a7 = new TableCell { Text = "<asp:LinkButton  OnClick=\"AcceptPayment\" runat=\"server\" class=\"myButtonGreen\">Aceptar Pago</asp:LinkButton>" };
            TableCell a8 = new TableCell { Text = "<asp:LinkButton  OnClick=\"RejectOrder\" runat=\"server\" class=\"myButtonRed\">Anular Orden</asp:LinkButton>" };

            //Create cells for row b
            TableCell b1 = new TableCell { };
            TableCell b2 = new TableCell { Text = order.Amount.ToString() };
            TableCell b3 = new TableCell { Text = order.Restaurante.ToString() };
            TableCell b4 = new TableCell { Text = order.OrderState.ToString() };
            TableCell b5 = new TableCell { Text = order.CardNumber + " " + order.CardDate };
            TableCell b6 = new TableCell { };


            //Add cells to columns
            a.Cells.Add(a1);
            a.Cells.Add(a2);
            a.Cells.Add(a3);
            a.Cells.Add(a4);
            a.Cells.Add(a5);
            a.Cells.Add(a6);
            a.Cells.Add(a7);
            a.Cells.Add(a8);




            b.Cells.Add(b1);
            b.Cells.Add(b2);
            b.Cells.Add(b3);
            b.Cells.Add(b4);
            b.Cells.Add(b5);
            b.Cells.Add(b6);

            //Add rows to table
            table.Rows.Add(a);
            table.Rows.Add(b);

            //Add table to panel
            pnlShoppingCart.Controls.Add(table);

        }
    }

    protected void AcceptPayment(object sender, EventArgs e)
    {
    }

    protected void RejectOrder(object sender, EventArgs e)
    {

    }

, и событие OnClick, которое я вызываю, не доступно, так как я ставлю маркеры отладки на VS.

С чего бы это?

Кроме того, как мне передать int на событие?

1 Ответ

0 голосов
/ 28 ноября 2018

Вместо того чтобы создавать строки из ваших LinkButton, вы, вероятно, должны создавать фактические LinkButton (или HtmlAnchor) объекты, а затем добавлять их в коллекцию Controls вашей ячейки таблицы.

Вот так:

var lb = new LinkButton();
lb.Text = "Aceptar Pago";
lb.CssClass = "myButtonGreen";
lb.Click += AcceptPayment;

a7.Controls.Add(lb);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...