asp.net按钮触发事件问题?

asp.net(C#)中,假设:前台设置了一个按钮(并触发它),和一个文本框(TextBox1)。 则,后台代码因分为两部分,一个是Page_Load和Button1_Click。.【我要的目的:】运行网页时(Page_Load),TextBox1默认显示数据库中某一字段内容。如:TextBox1.Text=rr["id"].ToString();                     点击按钮时(Button1_Click),将新输入的数据更新到数据库。如:string sql="Update users set id='"+TextBox1.Text+"' where……" 并用command命令执行。.【出现的问题原因:】数据并没有被更新,原因是当点击按钮时,Page_Load还是会再执行一遍的,因此不管你输入的是什么,都会被前面的Page_Load中的读取所取代,因此数据并没有变化。.【提出问题:】如何实现我想要的功能,或者说,如何让按钮触发时,不再执行Page_Load事件,只执行Button_Click呢?

if (!IsPostBack) { }
IsPostBack 可以判断这个页面是第一次读取还是触发了某事件后提交。第一次读取时值为False,提交数据后为True。在Page_Load里,添加if (!IsPostBack) { }判断,(注意,这里有个叹号,表示“非”,)!IsPostBack,并非提交回传,那就是第一次打开,读取数据库;IsPostBack,表示提交,不用读数据库,不用处理。(文本框的内容会自动保留,执行Click事件时保存到数据库。)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-22
将Page_Load里的代码,外围加上
if (!IsPostBack)
{
//加载执行的代码放这里
//IsPostBack表示第一次加载
}
第2个回答  2011-11-22
用IsPostBack函数,一般在Page_Load事件里都要用这个函数的
相似回答