Ich habe eine Dropdown-Liste und einen Kalender-Extender w entsprechend erstellt. Jeder Wert der Dropdown-Liste sollte die Stilsichtbarkeit auf der Grundlage der Auswahl unterschiedlich beeinflussen. Wie gerade jetzt funktioniert die Funktionalität; für jedes Mal, wenn ich versuche, ein anderes listem zu wählen, wird die gesamte Seite aktualisiert und ich möchte AutoPostBack = "false" nicht setzen. Bitte lassen Sie mich wissen, wie Sie dieses Problem am besten lösen könnenDropdown-Liste ohne Postback, wenn Autopostback muss auf True (Code ist im Lieferumfang enthalten)
<asp:DropDownList ID="dropdownlist" runat="server" OnSelectedIndexChanged="dropdownlist_SelectedIndexChanged" AutoPostBack="True" >
<asp:ListItem Value="1">a</asp:ListItem>
<asp:ListItem Value="2">b</asp:ListItem>
<asp:ListItem Value="3">c</asp:ListItem>
<asp:ListItem Value="4">d</asp:ListItem>
<asp:ListItem Value="5">e</asp:ListItem>
<asp:ListItem Value="6">f</asp:ListItem>
<asp:ListItem Value="7">g</asp:ListItem>
</asp:DropDownList> <asp:Panel runat="server" ID="StartDate" >
<asp:Label ID="lblStartDate" runat="server" Text="Start Date:"></asp:Label>
<asp:TextBox ID="txtStartDate" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidatorStartDate" runat="server" ErrorMessage="Please enter a validate date" ControlToValidate="txtStartDate" Type="Date" Operator="DataTypeCheck" Display="Static" Font-Italic="False" SetFocusOnError="True"></asp:CompareValidator>
</asp:Panel>
<cc1:CalendarExtender ID="CalendarExtenderStartDate" TargetControlID="txtStartDate" runat="server"></cc1:CalendarExtender>
<asp:Panel runat="server" ID="EndDate" >
<asp:Label ID="lblEndDate" runat="server" Text="End Date:"></asp:Label>
<asp:TextBox ID="txtEndDate" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidatorEndDate" runat="server" ErrorMessage="Please enter a validate date" ControlToValidate="txtEndDate" Type="Date" Operator="DataTypeCheck" Display="Static" Font-Italic="False" SetFocusOnError="True"></asp:CompareValidator>
</asp:Panel>
<cc1:CalendarExtender ID="CalendarExtenderEndDate" TargetControlID="txtEndDate" runat="server"></cc1:CalendarExtender>
Code hinter
if (!IsPostBack)
{
SetDateFields();
}
}
protected void dropdownlist_SelectedIndexChanged(object sender, EventArgs e)
{
SetDateFields();
}
private void SetDateFields()
{
switch (dropdownlist.SelectedValue)
{
case "1":
case "3":
case "5":
EndDate.Visible = false;
StartDate.Visible = true;
lblStartDate.Text = "As Of Date:";
break;
case "7":
EndDate.Visible = false;
StartDate.Visible = false;
break;
default:
EndDate.Visible = true;
StartDate.Visible = true;
lblStartDate.Text = "Start Date:";
lblEndDate.Text = "End Date:";
break;
}
}