0

コードビハインド:

  private void Page_Load(object sender, System.EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ddlLanguage.SelectedValue = Thread.CurrentThread.CurrentCulture.Name;
        }

    }



    protected void ddlLanguage_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (ddlLanguage.SelectedValue == "es-ES")
        {
            mdlPopup.Show();
        }
        //Sets the cookie that is to be used by Global.asax
        HttpCookie cookie = new HttpCookie("CultureInfo");
        cookie.Value = ddlLanguage.SelectedValue;
        Response.Cookies.Add(cookie);

        //Set the culture and reload the page for immediate effect. 
        //Future effects are handled by Global.asax
        Thread.CurrentThread.CurrentCulture = new CultureInfo(ddlLanguage.SelectedValue);
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(ddlLanguage.SelectedValue);
        //Server.Transfer(Request.Path);
    }


    protected void OKButton_Click(object sender, EventArgs e)
    {
        Server.Transfer(Request.Path);
    }

ASPXページ:

 <asp:DropDownList ID="ddlLanguage" class="langpnl" runat="server" AutoPostBack="True"
      OnSelectedIndexChanged="ddlLanguage_SelectedIndexChanged">
   <asp:ListItem Value="en-US">Eng</asp:ListItem>
   <asp:ListItem Value="es-ES">Esp</asp:ListItem>
 </asp:DropDownList>
<ajaxToolkit:ModalPopupExtender ID="mdlPopup" runat="server" TargetControlID="testhidden"
   PopupControlID="pnlPopup" OkControlID="OKButton" />
<asp:Panel ID="pnlPopup" runat="server" Width="500px" Style="display: none">
   All content may not be in Spanish.
<asp:Button ID="OKButton" runat="server" Text="OK" OnClick="OKButton_Click" />
</asp:Panel>
<asp:HiddenField ID="testhidden" runat="server" />

ドロップダウンボックスの選択に従って言語を設定しようとしています。しかし、ユーザーがスペイン語を選択した場合は、メッセージ付きのポップアップモーダルを表示し、[OK]ボタンが押されたら、ページ全体をポストバックしたいと思います。現在、ポップアップを表示することはできますが、ページが更新されないため、言語は変更されません。コードビハインドで、[OK]ボタンからserver.transferを削除し、それをSelectIndexChangeに入れると、ページのポストバックは機能しますが、ポップアップmasgはありません。ポップアップの実行後にページがポストバックされるため、ページが表示されないようになります。 ..過去3日間から頭を悩ませている助けが必要です。

4

2 に答える 2

1

そのパネルに別のボタンを定義して、その onclick イベントでやりたいことを何でもしてください。したがって、ポストバックが発生します。

OKButton クリック イベント... OKButton_Click は、modalpopup で割り当てられている限り発生しません...

于 2012-09-20T17:41:46.900 に答える
0
 if (ddlLanguage.SelectedValue == "es-ES")
        {
            mdlPopup.Show();
        }
  else
        {
            Server.Transfer(Request.Path); 
        }

&ModalpopupからOKボタンを削除しました..ついに私が期待していたものを見ることができました..

于 2012-09-20T18:05:05.807 に答える