我使用以下语法绑定到div元素:
<div id="previewdiv"><%=Preview%></div>
预览是我页面上的属性。
问题在于我是在onclick事件的新页面上用Javascript创建的。在服务器端,我可以通过此属性引用新页面但由于某些原因,当页面回发时,变量被设置为默认的初始化值而不是我在页面中设置的值,即预览=字符串。当我第二次回发时,页面将使用我设置的值进行更新。
我或许可以将代码移动到Init,但我需要从控件中获取值以初始化此属性。
想法?
答案 0 :(得分:2)
您遇到的问题是,使用传统的ASP.NET Web窗体,<%= %>
代码会在您的代码有机会运行之前的页面生命周期的早期进行评估。
相反,您希望使用ASP.NET Data Binding,它使用不同的语法,如下所示:<%# %>
。 (注意“#”)。然后,要使此代码呈现,当您准备用实际数据替换模板时,必须调用某些服务器端控件的DataBind()。
因此,在您的服务器代码中,您可以执行以下操作:
Preview = someString;
previewDiv.DataBind();
在你的标记中,有这样的东西:
<div runat=server id="previewdiv"><%#Preview%></div>