c#asp文本框文本仅在文本框是只读时才从代码后面更改

时间:2013-04-23 09:47:05

标签: c#

我绝对迷茫。 我尝试更改文本框的默认文本。

这里有一个简单的代码来重现问题。

TextBox Textbox1和标签在任何单击按钮时都会更新。 Textbox var永远不会更新。仅限于第一页PageLoad。

问题是,我必须在代码后面添加我的文本框,而不是在aspx页面中添加。

有什么想法,我怎么能让它发挥作用?

%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="tbtester.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div >

        <asp:Panel ID="mypanel" runat="server">
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Button" />
            </asp:Panel>
    </div>
    </form>
</body>
</html>

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

    namespace tbtester
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                System.Web.UI.WebControls.TextBox var = new System.Web.UI.WebControls.TextBox();
                //if (!this.Page.IsPostBack)
                Label test = new Label();

                mypanel.Controls.Add(test);
                mypanel.Controls.Add(var);

                var.Text = DateTime.Now.ToLongTimeString();
                test.Text = DateTime.Now.ToLongTimeString();

                var.ReadOnly = false;

                TextBox1.Text = DateTime.Now.ToLongTimeString();



            }
        }
    }

1 个答案:

答案 0 :(得分:0)

禁用其read only标记before,将其添加到panel

     TextBox var = new TextBox();
     var.ReadOnly = false;
     mypanel.Controls.Add(var);