VB
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
If Me.IsPostBack Then
tb.Text = Request.Form("ctl00$cphContent$tb").ToString()
End If
If Not String.IsNullOrEmpty(tb.Text) Then
lit.Text = "Not Empty"
Else
lit.Text = "Empty"
End If
End Sub
ASP
<asp:Literal ID="lit" runat="server"></asp:Literal>
<asp:TextBox ID="tb" runat="server" Text=""></asp:TextBox>
<asp:Button ID="btn" runat="server" Text="click me" />
如果我是第一次调用该页面,则literal.text为“空”。比我设置一个断点到lit.Text =“非空”。在文本框中键入内容并单击按钮后,断点处的元素显示lit.Text现在为“非空”。一切都很好.....但页面上的lit.Text仍然是“空”而不是“不空”.....为什么?我无法更改lit.Text。
此致
答案 0 :(得分:1)
这种情况正在发生,因为您正在Page_Init
事件期间修改值。尝试在Page_Load
之后或之后修改它。
阅读ASP.net Page LifeCycle。当您在Page_Init
中设置值时,在此之后,在控件的ViewState中加载,并且此set的控件值返回'Empty'。