我的页面上有一个简单的文本框,其中包含嵌入式代码块,我在其中设置了它的值。但在浏览器中它仍显示“oldvalue”。无法弄清楚为什么..
<asp:TextBox id="textBox" runat="server" Text="oldvalue">
</asp:TextBox>
<%
var box = FindControl("textBox") as TextBox;
box.Text = "newvalue";
%>
答案 0 :(得分:2)
这不起作用,因为内联表达式<% %>
在asp.net页面生命周期中的prerender
事件之后执行。
您可以对页面内容或其控件进行的最后一次更改是PreRender
事件,因此在此事件期间可以保存服务器控件的视图状态的任何更改。的 MSDN reference here. 强>
因此,不要使用内联表达式,而是在代码中使用页面生命周期最多PreRender
个事件来更改TextBox.Text
属性。