C #: кнопка не работает внутри панели - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть несколько действительно случайная проблема, которую я просто не могу понять.

На моем веб-сайте есть страница, на которой после выбора значения из DropDownList автоматически генерируется форма (текстовое поле с кнопкой для ее подтверждения).

Проблема в том, что кнопка ничего не делает. Кажется, он не связан с созданным мною методом, который я нахожу очень странным, учитывая, что я использовал очень похожий код для другой страницы, и он работал просто отлично.

Вот ASP.NET:

<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:DropDownList ID="PossibleItems" OnSelectedIndexChanged="PossibleItems_SelectedIndexChanged" AutoPostBack="true" runat="server">
        <asp:ListItem Selected="true" Value="defaultValue">Select an item</asp:ListItem>
        <asp:ListItem Value="Purpose" Text="Purpose"></asp:ListItem>
        <asp:ListItem Value="Currency" Text="Currency"></asp:ListItem>
        <asp:ListItem Value="PaymentMethod" Text="Payment Method">    </asp:ListItem>
    </asp:DropDownList>

    <asp:GridView ID="ItemNamesList" runat="server"></asp:GridView>
    <asp:Label ID="ItemName" runat="server" Text="Label"></asp:Label>
    <asp:Panel ID="AddItemForm" runat="server">
    </asp:Panel>
</asp:Content>

Вот код:

    protected void PossibleItems_SelectedIndexChanged(object sender, EventArgs e)
    {
        // Generate the form
        generateForm();
    }

    protected void generateForm()
    {
        // if the administrator wants to create a new payment method
        else if (PossibleItems.SelectedValue.Equals("PaymentMethod"))
        {
            Label pmName = new Label();
            pmName.Text = "Payment method name : ";
            TextBox pmNameTB = new TextBox();
            AddItemForm.Controls.Add(pmName);
            AddItemForm.Controls.Add(pmNameTB);
            AddItemForm.Controls.Add(new LiteralControl("<br />"));

            // IMPORTANT PART: THIS IS WHERE I CREATE THE BUTTON
            Button pmBTN = new Button();
            pmBTN.Text = "Create";
            pmBTN.Click += (sender1, EventArgs) => { addPaymentMethod(sender1, EventArgs); };
            AddItemForm.Controls.Add(pmBTN);
        }
    }


    protected void addPaymentMethod(object sender, EventArgs e)
    {
        Response.Redirect("AddChange.aspx?id=18");
    }

}

Я попытался удалить как можно больше пуха.

Спасибо за ваше время.

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