AJAXとASP.NET3.5に問題があります:(同じものを別のページで使用していて、そこでは正常に動作するため、問題は本当に奇妙ですが、これについてはページ、これは機能していません。
これが私が持っているものです:
<asp:UpdatePanel ID="upMain" runat="server" UpdateMode="Conditional" Visible="true" RenderMode="Inline">
<ContentTemplate>
<asp:DropDownList ID="ddlNewService_PortTelco" runat="server" Width="250" CssClass="dropdown" AutoPostBack="true" OnSelectedIndexChanged="Provision_PortedTelcoChanged"></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
ドロップダウンの前の途中に、1つのDIV(html 1)があり、次にいくつかのasp:Panelsがあります。なぜこれがFULL POST BACK?!
何か案は ?ありがとう
私は同じ問題を抱えていました...ここにコピーされたコードには表示されていませんが、updatepanel内にClientIDMode = Staticのコントロールがないことを確認してください....それらを作成してください- 継承
少なくともポストバックをトリガーする可能性のあるすべてのコントロール
AutoPostBack
がtrue
に設定されたドロップダウンリストがあります。そのため、必要に応じて、AsyncPostBack
の代わりにポストバックします。
ドロップダウンリストからAutoPostBack=true
を削除し、UpdatePanelセットのAsync
トリガーをドロップダウンリストとそのeventname="SelectedIndexChanged"
に設定します。
私も同じ問題を抱えています...
WEB.CONFIGを確認してください
<xhtmlConformance mode="Legacy"/>
この行のために..そしてそれを削除するだけです!!
私のために働いた。ありがとう http://andrew-murphy.co.uk/?p=152
プログラミングスキルが不足していることをお詫びします:|それはすべて常に機能していましたが、アクションページの1つがPOST BACKED、そうでなかったとき)のように「見えた」ためです。なんて残念です!!!
お時間を無駄にしてすみません!
Autopostback="true"
およびClientIdMode="Static"
を持つaspコンポーネントがある場合は、トリガーを使用する必要があります。
このような:
<asp:UpdatePanel ID="upPrinceOffuce" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlPrintOffice" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:DropDownList ID="ddlPrintOffice" runat="server" ClientIDMode="Static" AutoPostBack="true" ...blah blah
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
ドロップダウンをどのようにバインドしますか?あなたが提供したコードは、静的アイテムで私の側で機能します。おそらく、問題を引き起こしているのは他のコントロールの何かです。
UpdatePanelのUpdateModeプロパティが条件付きに設定されていることに気付きましたが、トリガーを定義していません。ドロップダウンがselectedIndexChangedイベントをトリガーしたときに、更新パネルが非同期ポストバックを実行するように明示的に設定してみてください。次のマークアップのようなものを使用できます。
<asp:UpdatePanel ID="upMain" runat="server" UpdateMode="Conditional" Visible="true"
RenderMode="Inline">
<ContentTemplate>
<asp:DropDownList ID="ddlNewService_PortTelco" runat="server" Width="250"
AutoPostBack="true" OnSelectedIndexChanged="Provision_PortedTelcoChanged">
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlNewService_PortTelco" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
AutoPostBack属性をtrueに設定すると、部分的なポストバックが発生するのに十分なはずですが、それは発生せず、正しく説明したように、代わりに完全なポストバックがトリガーされます。
次の回避策は私のために働きます:
元のDropDownListは次のようになります。
<asp:DropDownList ID="ddlNewService_PortTelco" runat="server" Width="250" CssClass="dropdown" OnChange="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(this.name, '', true, '', '', false, true))" OnSelectedIndexChanged="Provision_PortedTelcoChanged"></asp:DropDownList>
WebForm_PostBackOptionsパラメーターの詳細については、以下を参照してください。
function WebForm_PostBackOptions(eventTarget, eventArgument, validation, validationGroup, actionUrl, trackFocus, clientSubmit)
http://msdn.Microsoft.com/en-us/library/system.web.ui.postbackoptions_members(v = VS.90).aspx
ドロップダウンリストの自動ポストバック属性がtrueに設定されているときに同じ問題が発生し、ドロップダウンリストIDをupdatepanelトリガーに追加することで問題を修正しました
AutoID値をClientIDModeプロパティに設定します。それは私のために働いた。ブラウザ(Google chromeとFirefox))で動作が異なります。
私はこの問題を抱えていました。ドロップダウンリストはHTMLテーブル内にあり、更新パネルを2つの個別の行にラップしました。 2行だけでなく、テーブル全体に更新パネルをラップすることで問題を修正しました。
この問題を修正する1つの代替方法は次のとおりです。
ライブラリを宣言する
using AjaxControlToolkit;
次に、これらの行で何かを行うことができます
private void InitControl()
{
//FIX - DROP DOWN
ToolkitScriptManager scrManager = (ToolkitScriptManager)Page.Master.Controls[0].Controls[0].FindControl("manScript");
scrManager.RegisterAsyncPostBackControl(ddlNewService_PortTelco);
}