1

我的 ASP.NET 页面上有一个 Google 语言下拉小部件。此页面包含级联下拉菜单。也就是说,从第一个下拉列表中选择值时,将填充另一个。

我面临的问题是,如果我首先从 Google 语言下拉列表中选择语言,然后从第一个下拉列表中更改值,则第二个下拉列表中的值不会保留为更改后的语言。我确信这是因为异步回发而发生的。但是,如果我将 EnableAjax 属性设置为 false,那么这是可行的。我正在使用 Telerik RadAjaxManager 来实现 Ajax。请在此处找到附加的代码

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Test Page - ASP.NET</title>
    </head>

    <form id="form1" runat="server">
        <asp:ScriptManager runat="server" ID="scrpt1">
        </asp:ScriptManager>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnableAJAX="true">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="ddl">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="DropDownList2" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <div>
            <div id="google_translate_element">
            </div>

            <script type="text/javascript">
                    function googleTranslateElementInit() 
                    {
                        new google.translate.TranslateElement({ pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
                    }
            </script>
            <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
            <br />
            <br />
            <asp:DropDownList runat="server" ID="ddl" AutoPostBack="true">
                <asp:ListItem Text="A"></asp:ListItem>
                <asp:ListItem Text="B"></asp:ListItem>
                <asp:ListItem Text="C"></asp:ListItem>
                <asp:ListItem Text="D"></asp:ListItem>
            </asp:DropDownList>
            <br />
            <br />
            <asp:DropDownList runat="server" ID="DropDownList2" />
        </div>
        </form>
    </html>

代码背后

          Private Sub ddl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl.SelectedIndexChanged 
            DropDownList2.Items.Add(ddl.SelectedItem.Text)
        End Sub

如果我可以通过启用 Ajax 来实现这一点,请告诉我。

谢谢, 斯里尼瓦斯

4

0 回答 0