这里的ext是存储“System.Web.UI.WebControls.Label”但我想在下拉列表中检索所选文本。这有什么问题? 我根据dropdownlist1填充dropdownlist2。请参考以下代码。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
a = DropDownList1.SelectedItem.Text;
DropDownList2.Items.Clear();
if (a == "Electronic")
{
DropDownList2.Items.Add(new ListItem("---Select SubCategory---","0"));
DropDownList2.Items.Add(new ListItem("Mobile", "1"));
DropDownList2.Items.Add(new ListItem("Tablet", "2"));
DropDownList2.Items.Add(new ListItem("Laptop", "3"));
DropDownList2.Items.Add(new ListItem("Accessories", "4"));
}
else if (a == "Kitchen")
{
DropDownList2.Items.Add(new ListItem("---Select SubCategory---", "0"));
DropDownList2.Items.Add(new ListItem("Cookware", "1"));
DropDownList2.Items.Add(new ListItem("Dinner set", "2"));
DropDownList2.Items.Add(new ListItem("Food processor", "3"));
DropDownList2.Items.Add(new ListItem("Microwave", "4"));
}
else if (a == "Books")
{
DropDownList2.Items.Add(new ListItem("---Select SubCategory---", "0"));
DropDownList2.Items.Add(new ListItem("Entrance exam", "1"));
DropDownList2.Items.Add(new ListItem("Fiction", "2"));
DropDownList2.Items.Add(new ListItem("Romance", "3"));
DropDownList2.Items.Add(new ListItem("Thriller", "4"));
}
else if (a == "Beauty")
{
DropDownList2.Items.Add(new ListItem("---Select SubCategory---", "0"));
DropDownList2.Items.Add(new ListItem("Mens perfume", "1"));
DropDownList2.Items.Add(new ListItem("Womens perfume", "2"));
}
string ext = DropDownList2.SelectedItem.Text;
}
修改
这里的问题是我正在使用验证&如果按下提交按钮,则不得允许提交。但我有更多的4个按钮用于导航,验证不允许我使用这些按钮,但它应该允许我执行button2_click的代码而不允许submit_click。
答案 0 :(得分:2)
因此,您的意思是您希望验证仅适用于提交按钮而不适用于所有按钮。您可以参考此页面:http://msdn.microsoft.com/en-us/library/ms227424.aspx 因此,通过这种方式,您可以指定验证仅适用于您拥有的提交按钮。
举个例子:
<asp:textbox id="AgeTextBox"
runat="Server">
</asp:textbox>
<br/>
<asp:requiredfieldvalidator id="RequiredFieldValidator2"
controltovalidate="AgeTextBox"
validationgroup="PersonalInfoGroup"
errormessage="Enter your age."
runat="Server">
</asp:requiredfieldvalidator>
<br/>
<asp:button id="Button1"
text="Validate"
causesvalidation="true"
validationgroup="PersonalInfoGroup"
runat="Server" />
答案 1 :(得分:1)
首先,
这对于基于父值的下拉列表进行硬编码实际上是一种糟糕的方法。当您在代码中添加/删除项目时,将来很难维护。你可以做的是在你的数据库中创建一个单独的表&amp;使用与父表的外键关系将您的项目存储在该表中,如
Tbl_Categories Tbl_Items
---------------------------- -----------------------------------
CategoryID Description ItemID CategID Description
---------------------------- -----------------------------------
1 Electronics 1 1 Mobiles
2 Kitchen 2 1 Tablets
3 Books 3 1 Laptops
4 Beauty 4 1 Accessories
然后,您只需定义下拉列表的数据源,以过滤父下拉列表的selectedValue。无需手动编码。您可以在此帖子中查看答案作为起点How to select dropdown lists with sql datasource
来到你的主要问题,
您可以在提交按钮&amp;上定义验证组。特别是验证控制。这使您只有在按下该按钮时才能调用验证。 Specifying Validation Groups on MSDN
<!--When Button1 is clicked, only validation
controls that are a part of PersonalInfoGroup
are validated.-->
<asp:button id="Button1"
text="Validate"
causesvalidation="true"
validationgroup="PersonalInfoGroup"
runat="Server" />
<asp:requiredfieldvalidator id="RequiredFieldValidator3"
controltovalidate="CityTextBox"
validationgroup="PersonalInfoGroup"
errormessage="Enter a city name."
runat="Server">
</asp:requiredfieldvalidator>
答案 2 :(得分:1)
你有2个解决方案: