ASP.NET ページに Google 言語のドロップダウン ウィジェットがあります。このページにはカスケード ドロップダウンが含まれています。つまり、最初のドロップダウンから値を選択すると、もう一方が入力されます。
私が直面している問題は、最初に Google 言語のドロップダウンから言語を選択し、最初のドロップダウンから値を変更すると、2 番目のドロップダウンの値が変更された言語に保持されないことです。これは、Async Postback が原因で発生していると確信しています。しかし、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 Enabledでこれを達成できるかどうか教えてください。
ありがとう、スリニバス