【问题标题】:Databinding to a property?数据绑定到属性?
【发布时间】:2010-05-27 20:30:52
【问题描述】:
我使用以下语法绑定到 div 元素:
<div id="previewdiv"><%=Preview%></div>
预览是我页面上的一个属性。
问题是我在 onclick 事件的新页面上用 Javascript 创建了这个。在服务器端,我可以通过此属性引用新页面,但由于某种原因,当页面回发时,变量被设置为默认的初始化值,而不是我在页面中设置的值,即预览= 字符串。当我第二次回发时,页面将更新为我设置的值。
我或许可以将代码移至 Init,但我需要从控件中获取值来初始化此属性。
想法?
【问题讨论】:
标签:
asp.net
javascript
data-binding
【解决方案1】:
您遇到的问题是,使用传统的 ASP.NET Web 窗体,<%= %> 代码在页面生命周期的早期进行评估,在您的代码有机会运行之前。
相反,您想使用ASP.NET Data Binding,它使用不同的语法,例如:<%# %>。 (注意“#”)。然后,要渲染此代码,您必须在准备好用实际数据替换模板时调用某些服务器端控件的 DataBind()。
因此,在您的服务器代码中,您可以执行以下操作:
Preview = someString;
previewDiv.DataBind();
在您的标记中,类似这样的内容:
<div runat=server id="previewdiv"><%#Preview%></div>