【发布时间】:2021-02-18 15:42:03
【问题描述】:
我的 asp 页面中有下拉菜单,当我尝试选择值时,无法在后面的代码中获取值。
这是我的下拉列表代码:
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<div class="row" >
<asp:Label ID="LblLanguage" runat="server" Text="Label" meta:resourceKey="LblLanguage">Language</asp:Label>
<asp:DropDownList ID="Language1" runat="server" AutoPostBack="true">
<asp:ListItem Value="auto">Select</asp:ListItem>
<asp:ListItem Value="en-US">English (US)</asp:ListItem>
<asp:ListItem Value="fr">French</asp:ListItem>
</asp:DropDownList>
</div>
</asp:Content>
当我尝试从下拉列表中选择法语时,代码后面没有值。这是我的代码后面
protected override void InitializeCulture()
{
string lang = Request["Language1"];
if (lang != null && lang != string.Empty)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang);
}
}
所以即使我从下拉列表中选择了一个值,这里的字符串 lang 也有 null。
【问题讨论】:
-
但是如果 autopostbackk = true,那么触发的代码中的事件是 SelectedIndexChanged。我不明白你为什么使用 InitializeCulture?除非回发已触发,否则只有在回发发生后,您才能获取/获取下拉列表的值。您没有解释何时/何地/如何运行此附加代码存根以及何时运行? InitializeCulture 预计何时运行?
-
@Albert D. Kallal InitializeCulture 将更改表单的语言。当页面初始化时,肯定需要初始化下拉菜单。借助选择我们可以更改语言?
-
@NCCSBIM071 - 上次我使用你的解决方案,它在我的新应用程序中工作。我在现有表单中使用相同的解决方案。从下拉列表中选择值时存在一些问题。你能帮帮我?
标签: c# asp.net drop-down-menu