回发后无法更改文字文本

时间:2013-02-20 11:16:35

标签: asp.net vb.net

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。

此致

1 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为您正在Page_Init事件期间修改值。尝试在Page_Load之后或之后修改它。

阅读ASP.net Page LifeCycle。当您在Page_Init中设置值时,在此之后,在控件的ViewState中加载,并且此set的控件值返回'Empty'。