asp.net AJAX页面中的自加自减问题,急

我在学习asp.net,VS2008环境新建的页面是AJAX页面,一个BUtton,一个TextBox计划是按一下Button,intC执行一次C++,然后在textbo... 我在学习asp.net,VS2008环境
新建的页面是AJAX页面,一个BUtton,一个TextBox
计划是按一下Button,int C 执行一次C++,然后在textbox里显示
代码如下
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{

public int C;

protected void Page_Load(object sender, EventArgs e)
{
// C = 1;
if (IsPostBack)
{
C = 1;

}

}
protected void Button1_Click(object sender, EventArgs e)
{

//if (!IsPostBack)
//{
// C = 1;

TextBox1.Text = C.ToString();

C++;
//}
}
}
但是就是不自加
各位给看看哪里有问题
展开
 我来答
wjinbd
2010-10-13 · TA获得超过8686个赞
知道大有可为答主
回答量:1536
采纳率:100%
帮助的人:2019万
展开全部
首先说 你这个程序和 ajax一点儿关系都没有
其次告诉你为啥不自加
你每次单击按钮 服务器都会重新加载一次页面,对象会被重新创建,也就是说c会被重新初始化一次 因此他一直是初值(这里你没设初值 就是0)

为了保证c 不会每次在页面对象重新创建时被重新初始化 需要将c设置为static
也就是
public static int c

另外一处错误就是
if (IsPostBack)
{
C = 1;

}
这个代码 每次postback 都会自动让c变为1 而每次按钮按下去 都会引发postback 这样 c永远是1

因此 应该修改为
if ( !IsPostBack) //注意是 !postbakc 而不是postback
{
C = 1;

}

这样完正的代码就是这样的

public static int C;

protected void Page_Load(object sender, EventArgs e)
{
if (! IsPostBack)
{
C = 1;

}

}
protected void Button1_Click(object sender, EventArgs e)
{

TextBox1.Text = C.ToString();

C++;
}
diaohengming
2010-10-13 · TA获得超过226个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:272万
展开全部
你这个变量在回传到服务器端的时候它的值是保留不下来的,可以页面的VIEWSTATE中。
public partial class _Default : System.Web.UI.Page
{
private int C
{
get{
if(ViewState["VSC"]==null)
return 0;
return (int)ViewState["VSC"];
}
set{ViewState["VSC"]=value;}
}

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
C = 1;

}

}
protected void Button1_Click(object sender, EventArgs e)
{

TextBox1.Text = C.ToString();

C++;

}
}
另:使用静态对象可能会导致同步问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喵喵采个花
2010-10-14 · TA获得超过100个赞
知道答主
回答量:180
采纳率:0%
帮助的人:98.5万
展开全部
你的c 不是全局的变量每次读取页面都重新赋值了 你可以存到ViewStat 里面 然后 每次读取出来 ++ 在存回去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘飞Good
2010-10-14
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
这问题有些严重啊,你是刚开始学吧,楼上的讲的很详细,希望你多多努力
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式