why you use viewstate at all? it is not necessary, just use update panel to update the textbox with the new value
here is the code
code behind:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtnumber.Text = "0";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
int number;
number = int.Parse(txtnumber.Text);
number++;
txtnumber.Text = number.ToString();
}
html :
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtnumber" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
let me know if it worked for you, mine was fine
good luck