ajax ツールキットで asp.net 3.5 を使用しています。
問題: 更新パネルに 2 つのドロップダウン リストを持つカスタム コントロールがあります。最初の DDL にはプロパティがAutoPostBack="true"
あり、選択すると 2 番目の DDL にデータが取り込まれます。この問題は、最初のページの読み込み後に初めて DDL が選択されたときに発生し、ページ全体が再読み込みされます。最初の DDL の項目が 2 回目に選択されると、すべてが期待どおりに機能します。
UpdatePanel に Triggers を追加しようとしましたが、結果は変わりません。
どんな助けでも大歓迎です。
.ascx :
<asp:UpdatePanel ID="popDates" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<p>
<asp:DropDownList ID="ddlDivision" runat="server" AutoPostBack="true" style="width:300px"></asp:DropDownList>
<asp:RequiredFieldValidator ID="requiredDivision" runat="server"
ControlToValidate="ddlDivision" ErrorMessage="* Please specify a value"
ValidationGroup="valGroupGetDates"
InitialValue="Select..." SetFocusOnError="True" CssClass="formValidation">
</asp:RequiredFieldValidator>
</p>
<p>
<asp:DropDownList ID="ddlKMA" runat="server" Enabled="False" AutoPostBack="true" style="width:300px"></asp:DropDownList>
<asp:RequiredFieldValidator ID="requiredKMA" runat="server"
ControlToValidate="ddlKMA" ErrorMessage="* Please specify a value"
ValidationGroup="valGroupGetDates"
InitialValue="Select..." SetFocusOnError="True" CssClass="formValidation">
</asp:RequiredFieldValidator>
</p>
</ContentTemplate>
</asp:UpdatePanel>
ascx.cs :
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsAsync || Page.IsPostBack)
{
String target = Page.Request.Params.Get("__EVENTTARGET");
//Division Session
Session["divisionDropDown"] = ddlDivision.SelectedItem.Value;
populateDivisionDDL();
ddlDivision.SelectedValue = Session["divisionDropDown"].ToString();
if (target != "" && target != null)
{
if (target.Contains("ddlDivision"))
{
populateKMA(ddlDivision.SelectedValue);
}
}
}
if (!Page.IsPostBack)
{
populateDivisionDDL();
ddlKMA.Items.Clear();
ddlKMA.Items.Add(default_item());
}
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
}
aspx :
<body>
<form id="ViewSPANodeDatesForm" runat="server">
<div>
<asp:ScriptManager ID="ScriptManagerDates" runat="server"></asp:ScriptManager>
<viewControl:SPANodeDates ID="SPANodeDates1" runat="server"></viewControl:SPANodeDates>
</div>
</form>
</body>
注: ajax コントロールを追加する前は、すべてが期待どおりに機能していました。
ありがとう!