我有一个非常随意的问题,我无法理解。
我的网站有一个页面,在从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");
}
}
我尝试过去除尽可能多的绒毛。
感谢您的时间。