나는 계단식 드롭 다운 상자를 설치하려고하는데 첫 번째 상자는 두 번째 값이 변경되는 등의 결과를 초래합니다. 나는 몇 가지 같은 마크 업이 : 이것은 그 때마다 제외하고있다계단식 설치에서 첫 번째 드롭 다운을 새로 고치는 이유는 무엇입니까?
protected void Page_Load(object sender, EventArgs e)
{
populateDDL1();
}
private void populateDDL1()
{
DDL1.Items.Clear();
// -- populate from SQL
}
protected void OnDDL1Change(object sender, EventArgs e)
{
DDL2.Items.Clear();
// -- populate from SQL
}
나는 상자 첫 번째 드롭 다운에서의 값을 클릭
<form id="ddlSelections" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
<asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DDL1" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="DDL2" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:DropDownList ID="DDL1" OnSelectedIndexChanged="OnDDL1Change" AutoPostBack="true" runat="server" />
<asp:DropDownList ID="DDL2" OnSelectedIndexChanged="OnDDL2Change" AutoPostBack="true" runat="server" />
<asp:DropDownList ID="DDL3" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
그리고 내 코드를 숨김이 같은 것입니다 두 번째 드롭 다운 상자가 채워 지지만 첫 번째 드롭 다운 상자의 값이 다시 채워지고 있습니다. 즉 populateDDL1()
이 호출되고 있는데 이는 Page_Load
이 호출되지 않으면 호출되지 않습니다. 왜 이것이 사실인지 이해하지 못하고 있습니다. 내가 어디로 잘못 가고 있는지에 대한 제안?
오, 소년! 그것으로 해결됩니다. 정말 고맙습니다. 7 분 후에 이것을 받아 들일 것입니다 :) – Legend
대단히 환영합니다. 나는이 발로 내 발을 못 박았습니다. – DOK
아하 ... :) 추가 팁을 주셔서 감사합니다. 가서'UpdatePanel'에 대한 개요를 읽었습니다. 이제는 (잘하면) 분명합니다. – Legend