我正在尝试使用字符串更新文本框。该字符串将被连接,然后将使用单击事件更新文本框。我可以在Windows应用程序中执行此操作,但是当我尝试在asp.net应用程序中执行此操作时,我无法获得我想要的结果。
public partial class WebForm3 : System.Web.UI.Page
{
public string string_punch;
protected void Page_Load(object sender, EventArgs e)
{
MultiView1.SetActiveView(View1);
txt_punch.MaxLength = 4;
txt_punch.Attributes.Add("OnChange", string_punch);
}
protected void btn_punch_7_Click(object sender, EventArgs e)
{
const string string_punch_Number_7 = "7";
string_punch = string_punch + string_punch_Number_7;
txt_punch.Attributes.Add("Value", string_punch);
}
protected void btn_punch_8_Click(object sender, EventArgs e)
{
const string string_punch_Number_8 = "8";
string_punch = string_punch + string_punch_Number_8;
txt_punch.Attributes.Add("Value", string_punch);
}
我希望能够单击btn_punch_7,然后单击btn_punch_8,并连接字符串,并使用这两个数字更新文本框。每次单击按钮时,字符串都将设置为null。感谢您提前寻求帮助。
答案 0 :(得分:2)
string_punch
在每个PostBack
之间丢失,这就是为什么它总是等于null
,因为ASP.NET是无状态的,这意味着它不会使其从发回到回发状态。还可以使用Text
的{{1}}属性来分配/检索文本框的值。
根据以下代码更改您的活动:
TextBox
答案 1 :(得分:0)
将string_punch
存储在Session
中,因此请将此代码添加到加载中:
if (Session["string_punch"] == null)
{
// this will only happen ONE TIME per session
Session["string_punch"] = "your INITIAL static value";
}
string_punch = Session["string_punch"];
现在,帖子后台之间将保留string_punch
的值。您的代码中发生的事情是在回发期间重建页面时,public string string_punch;
正在重新定义此变量。
现在每次点击后都添加以下行:
Session["string_punch"] = string_punch;
答案 2 :(得分:0)
每次都要将属性值添加到元素中。而不是那样做。
txt_punch.Text = string_punch;