【问题标题】:modal pop-up ok button not working as expected for a dropdown menu对于下拉菜单,模态弹出确定按钮无法按预期工作
【发布时间】:2012-09-13 03:01:09
【问题描述】:

代码隐藏:

  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" />

我正在尝试根据下拉框中的选择设置语言。但是,如果用户选择西班牙语,我想显示一个带有 msg 的弹出模式,一旦按下按钮 OK,我想回发整个页面。 目前我能够显示弹出窗口,但页面从未刷新,因此语言仍然没有改变。在后面的代码中,如果我从 OK 按钮中删除 server.transfer 并将其放在 SelectIndexChange 中,则页面回发正在工作,但没有弹出消息。我认为页面在弹出窗口执行后得到回发,因此它永远不会显示。 ..请需要一些帮助,自从过去 3 天以来,我的头都快坏了。

【问题讨论】:

    标签: c# javascript asp.net jquery-ui asp.net-ajax


    【解决方案1】:

    在该面板中定义另一个按钮...并在他的 onclick 事件中执行您想要的任何操作。所以你会有一个回发。

    OKButton 点击​​事件... OKButton_Click 不会触发,只要您在 modalpopup 中分配他...

    【讨论】:

    • 是的,它的工作原理,但是当我从西班牙语回到英语时,我面临同样的结果,它仍然显示西班牙语,直到我刷新页面..
    【解决方案2】:
     if (ddlLanguage.SelectedValue == "es-ES")
            {
                mdlPopup.Show();
            }
      else
            {
                Server.Transfer(Request.Path); 
            }
    

    & 从 Modalpopup 中删除了 OK 按钮。终于看到我在期待什么了。

    【讨论】:

    • @avi 很抱歉再次打扰您。我正在测试相同的模块,发现具有表单提交的页面不会回发,因为验证失败,因为弹出窗口已启动,页面卡住,即使您按确定,验证在后台失败,所以弹出窗口不会离开。需要一些指导……我一团糟……
    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多