我尝试动态地在ASP.Net中为DropDownList(它绑定到指向数据库的数据源)设置DataTextField,这样我就可以根据当前的本地化访问数据库中的不同列。
然而,我使用的方法导致无限循环并最终导致StackOverflowException,但我无法弄清楚为什么,因为这种方法在其他地方似乎很好用(TextView等)。
的DropDownList:
<asp:DropDownList ID="ddlType" runat="server" DataSourceID="dtsType" DataTextField='<%# Localize("Name") %>' DataValueField="ID" OnDataBound="ddlType_DataBound">
本地化代码():
public string Localize(string field)
{
string languageCode = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToUpper();
if (languageCode.Equals("DE")) return field;
return field + "_" + languageCode;
}