ASP.NET TextBox - is it possible to initialize text attribute with in line code <% %>

前端 未结 5 914
傲寒
傲寒 2021-01-18 12:51


I need to initialize the text attribute of the text box element with a property from some where else when actually I can simply do this from code but it will be much m

5条回答
  •  抹茶落季
    2021-01-18 13:36

    OK so the basic problem here is that if you use an inline expression you can NOT use it to set a property of a server-side control outside of a binding context (using a binding expression). I have inferred that this is probably because of the timing of the evaluation of these inline expressions. You can, however, render client-side markup in this way. If you want to keep the functionality purely in your aspx file, this is the way to do it.

    Edit: Based on input from Justin Keyes, it appears it IS possible to use a binding expression to set the property. You need to manually invoke Page.DataBind() to trigger the textbox to evaluate the expression (see answer below).

    For instance this:

    
    

    Will produce this output:

    <%= Now.ToShortDateString() %>

    On the other hand this:

    <%= "" & Now.ToShortDateString() & ""%>

    Will produce this output:

    7/27/2011

    The "normal" way to solve this problem is just to set the Label.Text properties in a Page.Load event handler or another appropriate event handler depending on your needs, as below. This is the way I believe most people would prefer to do it, and is most easily understandable in my opinion.

    Markup:

    
    

    Code:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        lbl.Text = Now.ToShortDateString()
    End Sub
    

提交回复
热议问题