我已经实现了一种方法,可以从数据库的值中翻译ASP.NET页面的所有可能标签和链接按钮等。标签等具有硬编码的文本值作为后备,并且在运行时将被翻译。
我做的是基本上写了一个BasePage
,每个页面都继承了这个。我覆盖了递归查找所有必需控件的Page_Load
方法,然后更改了文本。我了解到我必须使用Page_Load
,因为如果我使用LinkButton
On_Init
,则标题On_InitCompleted
文字未被翻译。
然而,只要我没有点击LinkButton
列上的GridView
,这就可以正常运行。这会触发一个回溯(异步),它会遍历我的所有翻译代码。但是看看页面,我看到它们又回到了网格视图上的硬编码后备文本标题(只有gridview标题)。我很确定这是页面生命周期舞蹈的一部分,但无法解决它。
我希望在BasePage中拥有所有翻译逻辑,而不是订阅任何GridviewEvents并更改绑定等标签。
通过更新面板的异步回发保留gridview标头的转换会很有帮助。 任何帮助将不胜感激。
答案 0 :(得分:0)
我来回实验并决定不在开头但在页面生命周期结束时进行翻译。
因此,我现在在Page_Log
覆盖中进行翻译而不是On_PreRenderCompleted
。
立即行动!