C# ASP.NET C为什么我不能更改网页中文本框中的文本

C# ASP.NET C为什么我不能更改网页中文本框中的文本,c#,asp.net,C#,Asp.net,我有一个带有简单网页的ASP.NET项目。当我加载网页时,文本框显示Hello。当我点击按钮时,文字消失了。 我试过了!加载表单函数中的IsPostBack只需使文本保持不变 protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = "Hello"; } protected void btnUpload_Click(object sender, EventArgs e

我有一个带有简单网页的ASP.NET项目。当我加载网页时,文本框显示Hello。当我点击按钮时,文字消失了。 我试过了!加载表单函数中的IsPostBack只需使文本保持不变

protected void Page_Load(object sender, EventArgs e)
{   
    TextBox1.Text = "Hello";               
}

protected void btnUpload_Click(object sender, EventArgs e)
{
   TextBox1.Text = "Good Bye";

}

这是因为您没有使用

if(!IsPostBack) { }
内页加载方法

因此,将您的代码修改为:

protected void Page_Load(object sender, EventArgs e)
{   
    if(!IsPostBack) {
    TextBox1.Text = "Hello";               
    }
}

protected void btnUpload_Click(object sender, EventArgs e)
{
   TextBox1.Text = "Good Bye";
}

因为,您没有使用这个,这就是为什么,在按钮的回发上,它将值更改为TextBox1.Text=再见;但在完成回发后,页面加载会再次更改为TextBox1.Text=Hello;这就是页面加载的默认值在渲染后显示的原因。

您必须在页面加载事件处理程序中使用以下条件,而不是在加载表单中:

您的按钮单击事件处理程序正常


希望有帮助

请参见以下代码:

Default.aspx:

<asp:TextBox ID="text1" runat="server"></asp:TextBox>
<asp:Button ID="btn" runat="server" OnClick="btn_Click" />

请确保aspx页面包含与上述按钮相同的代码。

您可以发布您的属性吗?它是否将AutoEventWireup设置为true?另外,btnUpload按钮的HTML也很好看到。它应该有OnClick=btnUpload\u Click属性集。它对我来说工作正常。单击按钮时,文本将由更改为“良好”。你是在找别的东西吗?你是不是在aspx中缺少OnClick=btnUpload\u单击按钮单击。不是真的。页面加载首先出现,然后是触发回发的事件。看见因此,如果没有if,代码确实可以很好地工作!谢谢你们为我解决了这个问题。非常感谢。如果你喜欢这个答案,如果它对你有用,请勾选它作为正确答案,这样,它也可以帮助其他人@任赫
<asp:TextBox ID="text1" runat="server"></asp:TextBox>
<asp:Button ID="btn" runat="server" OnClick="btn_Click" />