我的页面上有一个简单的文本框,其中包含一个嵌入的代码块,我在其中设置了它的值。但在浏览器中它仍然显示“oldvalue”。想不通为什么。。
<asp:TextBox id="textBox" runat="server" Text="oldvalue">
</asp:TextBox>
<%
var box = FindControl("textBox") as TextBox;
box.Text = "newvalue";
%>
我的页面上有一个简单的文本框,其中包含一个嵌入的代码块,我在其中设置了它的值。但在浏览器中它仍然显示“oldvalue”。想不通为什么。。
<asp:TextBox id="textBox" runat="server" Text="oldvalue">
</asp:TextBox>
<%
var box = FindControl("textBox") as TextBox;
box.Text = "newvalue";
%>
这将不起作用,因为内联表达式<% %>
是prerender
在 asp.net 页面生命周期中的事件之后执行的。
并且您可以对页面内容或其控件进行的最后更改是由PreRender
事件决定的,因此可以在此事件期间保存服务器控件的视图状态的任何更改。MSDN 参考这里。
因此,与其使用内联表达式,不如PreRender
在代码中使用任何事件直到页面生命周期的事件来更改TextBox.Text
属性。