作爲一個快速測試,我想出了這一點,這工作(對我來說):
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="ddl1" InitialValue="0" ValidationGroup="DDLOnly">*</asp:RequiredFieldValidator>
<asp:DropDownList ID="ddl1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="test" CausesValidation="true" ValidationGroup="DDLOnly">
<asp:ListItem Value="0">---Select---</asp:ListItem>
<asp:ListItem Value="1">Option1</asp:ListItem>
<asp:ListItem Value="2">Option2</asp:ListItem>
<asp:ListItem Value="3">Option3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddl2" runat="server">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvTxt" runat="server" ControlToValidate="txt1" ValidationGroup="WholePage">*</asp:RequiredFieldValidator>
<asp:TextBox ID="txt1" runat="server" ValidationGroup="WholePage"></asp:TextBox>
<asp:Button ID="btn1" runat="server" Text="Button" OnClientClick="return Page_ClientValidate();" OnClick="btn" />
</ContentTemplate>
</asp:UpdatePanel>
而且在後面的代碼:
protected void test(object sender, EventArgs e)
{
ddl2.Items.Clear();
for (int i = 0; i < 4; i++)
ddl2.Items.Add(new ListItem("Test" + ddl1.SelectedIndex));
}
當選擇了任何選項時填充第二個DDL,但不是用於初始項目0
編輯:增加在TextBox
和Button
與驗證組;只有ddl1
驗證上SelectedIndexChanged
但兩者ddl1
和txt1
被驗證OnClick
@barek這將是我最後的手段(我現在使用的是什麼),直到我得到另一種選擇 – Deeptechtons