1

我的页面上有一个简单的文本框,其中包含一个嵌入的代码块,我在其中设置了它的值。但在浏览器中它仍然显示“oldvalue”。想不通为什么。。

<asp:TextBox id="textBox" runat="server" Text="oldvalue">
</asp:TextBox>     

<%
    var box = FindControl("textBox") as TextBox;
    box.Text = "newvalue";
%>  
4

1 回答 1

2

这将不起作用,因为内联表达式<% %>prerender在 asp.net 页面生命周期中的事件之后执行的。

并且您可以对页面内容或其控件进行的最后更改是由PreRender事件决定的,因此可以在此事件期间保存服务器控件的视图状态的任何更改。MSDN 参考这里。

因此,与其使用内联表达式,不如PreRender在代码中使用任何事件直到页面生命周期的事件来更改TextBox.Text属性。

于 2013-09-18T09:05:55.587 回答