C#:Button在Panel中不起作用

时间:2018-04-29 23:21:29

标签: c# asp.net events webforms

我有一个非常随意的问题,我无法理解。

我的网站有一个页面,在从DropDownList中选择一个值后,它会自动生成一个表单(一个带有Button的TextBox来确认它)。

问题在于,按钮没有做任何事情。它似乎没有连接到我创建的方法,我觉得非常奇怪,因为我已经为另一个页面使用了非常相似的代码,它工作得很好。

这是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");
    }

}

我尝试过去除尽可能多的绒毛。

感谢您的时间。

0 个答案:

没有答案