2011-08-03 13 views
2

私はASP.NET 4.0を使用しています。私は2 DropDownListCascadingDropDown(Ajax Control Toolkit製)とUpdatePanelを同じページに持っています。 (1つのオプションがDropDownListから選択されると、CascadingDropDownはその事を行い、第二DropDownListを更新)更新パネルと同じaspxページでカスケードドロップダウンを使用する

ドロップダウンは、更新パネル内にない、と彼らの機能が正常に動作しています。

更新パネルにはボタンとテキストボックスが含まれています。ボタンをクリックすると、テキストボックスにテキストを設定するイベントハンドラが設定されます。

ドロップダウンのコード部分がコメントアウトされているときには、更新パネルがうまく動作しますが、ドロップダウンのコメントが外されると、ボタンをクリックするとテキストボックスが更新されなくなり、ポストバックは発生しません。

aspxページ:

<asp:ScriptManager ID="scriptManager" runat="server"> 
</asp:ScriptManager> 

<div> 
    <label for="<%= ddOne.ClientID %>" >DD one</label> 
    <asp:DropDownList ID="ddOne" runat="server"> 
     <asp:ListItem Text="" Value="-1" /> 
     <asp:ListItem Text="Option one" Value="1" /> 
     <asp:ListItem Text="Option two" Value="2" /> 
     <asp:ListItem Text="Option three" Value="3" /> 
    </asp:DropDownList> 
</div> 

<ajaxToolkit:CascadingDropDown 
     ID="ccdOne" 
     runat="server" 
     ParentControlID="ddOne" 
     TargetControlID="ddTwo" 
     Category="Category" 

     ServicePath="SomeWebService.asmx" 
     ServiceMethod="SomeWebMethod" 
     EmptyText="None available" 
     EmptyValue="-1" 
     LoadingText="Loading..." /> 

<div> 
    <label for="<%= ddTwo.ClientID %>">DD two</label> 
    <asp:DropDownList ID="ddTwo" runat="server"> 
    </asp:DropDownList> 
</div> 

<asp:UpdatePanel runat="server" ID="upPanelOne"> 

    <ContentTemplate> 

     <asp:Button ID="aButton" runat="server" Text="Click me" onclick="aButton_Click" /> 
     <asp:TextBox ID="txtOne" runat="server" /> 

    </ContentTemplate> 


</asp:UpdatePanel> 

背後にあるコード:

protected void aButton_Click(object sender, EventArgs e) 
    { 
     txtOne.Text = "Hello world"; 
    } 

任意のアイデア?

注:ドロップダウンカスケードで

DropDownListの罰金、自身の作品に

UpdatePanel作品罰金

DropDownList sが更新パネルと同じページに使用

はなく、中更新パネル、更新パネルが動作を停止しますか?

+0

エラーの原因がわかりました。この質問に対する答えとしてあなたの発見を投稿し、答えとしてそれを受け入れてください。これを行うと、同じ問題を抱えている他のpleopleを助けることができます。 – rcdmk

答えて

0

だから、このようなものでなければなりませんあなたのupdatepanel

<Triggers> 
      <asp:AsyncPostBackTrigger ControlID="aButton" EventName="Click"/
     </Triggers> 

に次のタグを追加:私は同じ問題を抱えていたが、私はEnableEventValidation="false"を設定するように指示ベンコメントを踏襲

<asp:UpdatePanel runat="server" ID="upPanelOne"> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="aButton" EventName="Click"/
     </Triggers> 
     <ContentTemplate> 
      <asp:Button ID="aButton" runat="server" Text="Click me" onclick="aButton_Click" /> 
      <asp:TextBox ID="txtOne" runat="server" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
+0

ボタンが更新パネル内の子コントロールであるため、トリガーを明示的に追加する必要はないと思っていましたが、これまでどおりに試してみましたが、DropDownListのコードがコメントされているときに動作しますしかし、そのコードが動作していないときには:( – Ben

+0

私は問題が何かを理解しました。明らかに、サーバーコントロールに要素を追加すると、ポストバックのjavascript経由でリストに例外がスローされますイベントの検証やそのようなメッセージを無効にすることができます。私は更新パネルを使っていたので、何も起こっていないように見えましたので、エラーメッセージは表示されませんでした。http://odetocode.com/blogs/scott/archive/2006 /03/20/asp-net-event-validation-and-invalid-callback-or-postback-argument.aspx – Ben

+0

共有のおかげで.... – Waqas

0

私の問題を解決し、今はうまくいきます。

関連する問題