在ASP.NET中本地化动态绑定的DropDownList

曼努

我有一个与数据库表“ countries绑定的下拉列表,
该下拉列表将列countryname作为其datatextfield,将countrycode作为datavaluefield。
假设此表有3个条目,分别具有如下所示的列值。

印度
德国DE
美国美国

我将文化更改为de-DE,
因为我知道对单个静态文本使用resx文件。现在,如何将多个数据文本字段项同时本地化为de-DE

雷皮埃尔

为此,您需要将表行集合与值中资源文件中的值连接起来,然后将数据打包到将绑定到的自定义类型中DropDownList所以:

var tableRows = table.Rows.Cast<DataRow>();
var resourceStrings = YourResourceClass.ResourceManager
        .GetResourceSet(culture: CultureInfo.CurrentUICulture,
            createIfNotExists: false,
            tryParents: true)
        .Cast<DictionaryEntry>();

var data = tableRows
        .Join(resourceStrings,
            row => row["countrycode"].ToString(),
            resource => resource.Key,
            (row, resource) => new KeyValuePair<string, string>(
                row["countrycode"].ToString(),
                resource.Value.ToString()))
        .ToArray();

现在,将您的绑定属性更改DropDownList为:

ddl.DataTextField = "Value";
ddl.DataValueField = "Key";

并绑定数据源:

ddl.DataSource = data;

编辑

为了在不使用LINQ的情况下获得相同的结果,您需要将资源加载到字典中,然后在counties表上进行迭代以构建数据源。像这样的东西:

var resources = new Dictionary<string,string>();
var resourceSet = YourResourceClass.ResourceManager.GetResourceSet(
    CultureInfo.CurrentUICulture, false, true);
foreach(DictionaryEntry kvp in resourceSet)
{
    resources[kvp.Key] = kvp.Value.ToString();
}

var dataSource = new List<KeyValuePair<string, string>>();
foreach(DataRow in table.Rows)
{
    var countryCode = row["countrycode"].ToString();
    if(resources.ContainsKey(countryCode))
    {
        dataSource.Add(new KeyValuePair<string, string>(
            countryCode,
            resources[contryCode]));
    }
}

接下来,将绑定dataSource到您的DropDownList,一切就绪!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC提交按钮本地化

来自分类Dev

ASP.Net Web API故障响应本地化

来自分类Dev

jQuery datepicker日期范围在与asp.net本地化相同的输入和本地化中

来自分类Dev

ASP.NET vNext-本地化(.resx)

来自分类Dev

如何在Asp.net MVC中向外部js文件添加本地化?

来自分类Dev

ASP.NET 5 MVC 6中的本地化

来自分类Dev

asp.net中的应用程序本地化

来自分类Dev

如何在ASP.NET MVC中本地化日期

来自分类Dev

如何在Asp.Net Core 1.0.0中本地化Display属性?

来自分类Dev

ASP.NET Core请求本地化选项

来自分类Dev

ASP.Net Core本地化

来自分类Dev

ASP.NET CORE(.NET Framework)和本地化

来自分类Dev

ASP.NET Core 3.0 Razor页面中的路由本地化

来自分类Dev

ASP.NET CORE 3.1中的数据注释和错误验证消息的本地化

来自分类Dev

Asp.Net Core中基于请求的Razor页面本地化

来自分类Dev

ASP.NET Core 3.0中的本地化

来自分类Dev

Asp.Net核心Angular SPA本地化

来自分类Dev

通过_Layout.cshtml中的ASP.NET Core本地化在ASP.NET Core中进行翻译的问题

来自分类Dev

ASP.NET MVC验证消息未本地化

来自分类Dev

为什么datetime未在asp.net网络方法中本地化?

来自分类Dev

Ajax请求不适用于asp.net MVC中的本地化

来自分类Dev

本地化asp.net下拉列表

来自分类Dev

在ASP.NET中本地化动态绑定的DropDownList

来自分类Dev

在ASP.NET MVC中Korzh EasyQuery的本地化

来自分类Dev

ASP.NET 5 MVC6中数据模型注释的本地化和国际化

来自分类Dev

Asp.net核心区域本地化

来自分类Dev

Asp.net Core 2.0 查看本地化错误

来自分类Dev

分离模型的 ASP.NET MVC 本地化

来自分类Dev

在asp.net core 2.1中基于国家的本地化