更新文本框值,在webform asp.net中更新一次

时间:2013-05-20 13:52:14

标签: c# asp.net textbox concatenation string-concatenation

我正在尝试使用字符串更新文本框。该字符串将被连接,然后将使用单击事件更新文本框。我可以在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。感谢您提前寻求帮助。

3 个答案:

答案 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;