循环浏览页面上的所有按钮并指定一个新的文本值
本文关键字:一个 文本 浏览 循环 按钮 | 更新日期: 2023-09-27 18:29:35
我有一个页面,页面上有几个按钮分配了相同的文本,我正在根据用户的浏览器文化将页面本地化为不同的语言。我希望能以编程的方式循环浏览它们,并在运行中重新标记它们。这是我尝试过的,它会导致asp页面错误:
foreach (Button s in Page.Controls)
{
if (s.Text =="search")
{
s.Text = "buscar";
}
}
您可能需要考虑使用资源文件,而不是循环使用控件。例如,有了资源文件,您就可以定义这样的按钮:
<asp:Button ID="btnSave" runat="server" meta:resourcekey="btnSave" Text="English Button" />
其想法是,您将为您希望支持的每种语言和文化创建一个resx文件,每个文件都包含相同的标签,例如"btnSave",但具有不同的文本值。
我强烈建议您查看资源文件,因为从长远来看,它们对您来说会更加灵活。
并非所有页面控件都是Button
。试试这个
foreach (Button s in Page.Controls.OfType<Button>())
另一方面,我完全同意@Jason Evans的观点,即这不是管理字符串本地化的正确方法。(我有点错过了你在第一次阅读中试图做的核心)
执行此
foreach(Control c in Page.Controls)
{
Button b = c as Button;
if(b!=null)
{
//do stuff
}
}