自动更新我在 ASP.net Web 表单和必填复选框中的下拉列表

Auto update my dropdown list in ASP.net Web Form and Required checkbox

我正在学习 ASP.net Web 表单并从事一个简单的项目,但我正在尝试做一些事情,但仍然无法弄清楚!

首先,我将国家作为单选按钮,将州作为下拉列表,然后将城市作为下拉列表!我将美国设为默认值,但问题是当我从单选按钮中选择另一个国家时,下拉列表不会更新(select 声明是 100% 正确的)

有没有一种简单的方法可以让我做我想做的事? (我也想对 states/cites 做同样的事情,从第一个下拉列表中获取状态并更新第二个下拉列表)

二、如何让复选框成为必填项?在使用自定义验证器之前,我在这里看到过一个问题我试过了,但是当我点击提交页面刷新(它基本上是提交)时,验证器消息显示,不像其他验证器我什至无法提交如果有什么问题!我该如何解决这个问题?

而且因为我是 asp 的新手,所以我不知道要在这里分享什么代码,所以如果有人告诉我您需要查看什么才能帮助我,我可以进行编辑。谢谢!

好的,我们将假设一些标记。您必须为单选按钮列表设置 auto-postback = true。

所以,假设我们有这个标记:

        <div class="mylabel" style="width:40%">
            <label>First Name:</label> <asp:TextBox ID="txtFirst"  runat="server"></asp:TextBox><br/>
            <label>Middle Initial:</label>  <asp:TextBox ID="txtMiddle" runat="server" Width="35px"></asp:TextBox><br/>
            <label>Last Name:</label>       <asp:TextBox ID="txtLast"   runat="server"></asp:TextBox><br/>
        </div>
            <div class="mylabel" style="float:left;line-height:75px">
               <label>Country:</label>
             </div>
        <div style="float:left">
            <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True">
                <asp:ListItem Value="USA">United States</asp:ListItem>
                <asp:ListItem Value="Canada">Canada</asp:ListItem>
                <asp:ListItem Value="Other">Other</asp:ListItem>
            </asp:RadioButtonList>
        </div>
        <div style="clear:both" class="mylabel">
            <br />
            <label>State/Province</label>
            <asp:DropDownList ID="DropDownList1" runat="server" Height="22px" Width="169px"
                style="font-size:14px"
                DataValueField="ID"
                DataTextField="HotelName">
            </asp:DropDownList>
        </div>

然后是这段代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        RadioButtonList1.SelectedIndex = 0
        LoadCombo()
    End If

End Sub

Protected Sub RadioButtonList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RadioButtonList1.SelectedIndexChanged

    LoadCombo()

End Sub

Sub LoadCombo()

    Dim strSQL As String =
        "SELECT ID, HotelName FROM tblHotels Where Country = @Country ORDER BY HotelName"

    Using conn As New SqlConnection(My.Settings.TEST4)
        Using cmdSQL As New SqlCommand(strSQL, conn)
            cmdSQL.Parameters.Add("@Country", SqlDbType.NVarChar).Value = RadioButtonList1.SelectedItem.Value
            conn.Open()

            DropDownList1.DataSource = cmdSQL.ExecuteReader
            DropDownList1.DataBind()

        End Using
    End Using

End Sub

现在我们有了这个:

因此,在第一次加载页面时 (post-back = false),我们将单选按钮列表设置为“0”(第一选择),然后我们调用例程来加载组合框。

当您根据国家/地区更改 RB 列表时,会调用相同的例程。