C# 填充的Dropdownlist工作不正常

C# 填充的Dropdownlist工作不正常,c#,asp.net,C#,Asp.net,这里ext存储“System.Web.UI.WebControls.Label”,但我想在dropdownlist中检索所选文本。这里有什么问题? 我正在基于dropdownlist1填充dropdownlist2。请参考以下代码 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { a = DropDownList1.SelectedItem.Text; DropD

这里ext存储“System.Web.UI.WebControls.Label”,但我想在dropdownlist中检索所选文本。这里有什么问题? 我正在基于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个以上的按钮用于导航,验证不允许我使用这些按钮,即它应该允许我执行按钮2的代码,不允许提交


因此,您的意思是希望验证只与提交按钮一起工作,而不是与所有按钮一起工作。您可以参考本页: 因此,通过这种方式,您可以仅使用您拥有的Submit按钮来分配验证

例如:

    <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" />




因此,您的意思是希望验证只使用提交按钮,而不是所有按钮。您可以参考本页: 因此,通过这种方式,您可以仅使用您拥有的Submit按钮来分配验证

例如:

    <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" />



首先

这是一种基于父值硬编码下拉列表的糟糕方法。将来在代码中添加/删除项时,很难维护这一点。您可以做的是在数据库中创建一个单独的表,并使用与父表的外键关系将项目存储在该表中,如

   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
然后,您只需定义dropdownlist的数据源,以根据父下拉列表的selectedValue进行过滤。不需要手动编码。你可以在这篇文章中检查答案作为起点

说到你的主要问题

您可以在“提交”按钮上定义一个验证组&验证控件。这使您能够仅在按下该按钮时调用验证


首先

这是一种基于父值硬编码下拉列表的糟糕方法。将来在代码中添加/删除项时,很难维护这一点。您可以做的是在数据库中创建一个单独的表,并使用与父表的外键关系将项目存储在该表中,如

   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
然后,您只需定义dropdownlist的数据源,以根据父下拉列表的selectedValue进行过滤。不需要手动编码。你可以在这篇文章中检查答案作为起点

说到你的主要问题

您可以在“提交”按钮上定义一个验证组&验证控件。这使您能够仅在按下该按钮时调用验证


您有两种解决方案:

  • 对控件组使用属性来激活某些验证
  • 对于4个导航按钮,Set=false
  • 您有两种解决方案:

  • 对控件组使用属性来激活某些验证
  • 对于4个导航按钮,Set=false

  • 你能解释清楚你的问题吗?代码中的ext始终等于“----选择子类别---”。您是对值ext的问题还是对方法未被调用的问题?您能更清楚地解释一下您的问题吗?代码中的ext始终等于“----选择子类别---”。您的问题是值ext还是方法没有被调用?