通过

时间:2017-03-10 14:14:20

标签: c# asp.net webforms

我的aspx页面上有一个html控件

<td>
  <input type="text" id="txtSubCode1" name="txtSubCode1" value="<%# this._SubCodeHeader1 %>" />
</td>

在我的代码后面我有属性

protected string _SubCodeHeader1 { get; set; }

当为_SubCodeHeader1分配新值时,是否可以刷新html控件?基本上我的html控件从不显示分配给_SubCodeHeader1的值。我想在不使用runat

的情况下从代码后面设置html控件的值

2 个答案:

答案 0 :(得分:0)

您应该将<%# this._SubCodeHeader1 %>更改为<%= this._SubCodeHeader1 %> 如果你想设置值而不做任何额外的事情。

此语句<%#仅在调用控件DataBind()方法或父控件的DataBind()方法时运行。

答案 1 :(得分:0)

您需要在每次回发时调用 DataBind 例如 -

<input type="text" id="txtSubCode1" name="txtSubCode1" 
    value="<%# this._SubCodeHeader1 %>" />
<asp:Button runat="server" ID="Button1" Text="Submit" OnClick="Button1_Click" />

代码背后

public partial class Default : System.Web.UI.Page
{
    protected string _SubCodeHeader1 { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            _SubCodeHeader1 = DateTime.Now.ToString();
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        _SubCodeHeader1 = DateTime.Now.ToString();
    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        DataBind();
    }
}