奇怪!我的提交按钮怎么每次都要按两下才会提交?

dyduyan 2007-02-13 11:29:19
做的是用户资料修改页面,现在有个很怪的问题,就是我如果修改过任何一项,提交的话也就是符合提交条件,按钮要连续按两下才会报已经修改成功。如果我在这个页面没有任何改动的话,也就是不符合提交修改的条件,点按钮立马弹出窗口告诉我必须至少有一项改动,
奇怪的就是我改了提交要按两下按钮才会有反应,第一下只刷新以下,第二下提交
我不改任何地方,点按钮它立即就有反应,怪了,郁闷阿
以下是我的代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using job_manager.model;
namespace job_manager.UserManager
{
/// <summary>
/// ModifyUser 的摘要说明。
/// </summary>
public class ModifyUser : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label Label4;
protected System.Web.UI.WebControls.Label Label5;
protected System.Web.UI.WebControls.Label Label6;
protected System.Web.UI.WebControls.Label Label7;
protected System.Web.UI.WebControls.TextBox txtUserId;
protected System.Web.UI.WebControls.TextBox txtPwd;
protected System.Web.UI.WebControls.TextBox txtName;
protected System.Web.UI.WebControls.TextBox txtCard;
protected System.Web.UI.WebControls.TextBox txtPhone;
protected System.Web.UI.WebControls.TextBox txtAddress;
protected System.Web.UI.WebControls.TextBox txtComment;
protected System.Web.UI.WebControls.ImageButton UpdateBtn;
protected System.Web.UI.WebControls.DropDownList DdlModify;
protected System.Web.UI.WebControls.ImageButton ReturnBtn;
protected System.Web.UI.WebControls.Label Label8;

private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
if(Session["user"]==null)
{
Response.Write("<script language=javascript>alert('您还没有登陆,请先登陆系统!')</script>");
Response.Write("<script language=javascript>window.parent.location='/job_manager/login.aspx';</script>");
}
else
{
Emp emp=(Emp)Session["user"];
Powers p=new Powers();
DataSet ds=p.findUserPowers(emp.EmpId,"User_Update");
if(ds.Tables[0].Rows.Count>0)
{
txtUserId.Text=Session["userId"].ToString();
txtPwd.Text=Session["pwd"].ToString();
DdlModify.SelectedValue=Session["userFlag"].ToString();
txtName.Text=Session["userName"].ToString();
txtCard.Text=Session["Card"].ToString();
txtPhone.Text=Session["Phone"].ToString();
txtAddress.Text=Session["Address"].ToString();
txtComment.Text=Session["Comment"].ToString();
}
else
{
Response.Write("<script language=javascript>alert('您没有修改雇员权限!');</script>");
Server.Transfer("UserManager.aspx");
}
UpdateBtn.Attributes.Add("onclick","return confirm('是否确定修改','')");
}
}
// ViewState["userId"]=txtUserId.Text;
// ViewState["pwd"]=txtPwd.Text;
// ViewState["userFlag"]=txtFlag.Text;
// ViewState["userName"]=txtName.Text;
// ViewState["Card"]=txtCard.Text;
// ViewState["Phone"]=txtPhone.Text;
// ViewState["Address"]=txtAddress.Text;
// ViewState["Comment"]=txtComment.Text;

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.UpdateBtn.Click += new System.Web.UI.ImageClickEventHandler(this.UpdateBtn_Click);
this.ReturnBtn.Click += new System.Web.UI.ImageClickEventHandler(this.ReturnBtn_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void UpdateBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string id=Session["id"].ToString();
string UserId=Session["userId"].ToString();
string Pwd=Session["pwd"].ToString();
string Flag=Session["userFlag"].ToString();
string Name=Session["userName"].ToString();
string Card=Session["Card"].ToString();
string Phone=Session["Phone"].ToString();
string Address=Session["Address"].ToString();
string Comment=Session["Comment"].ToString();


if(txtUserId.Text.Equals(UserId) && txtPwd.Text.Equals(Pwd) && DdlModify.SelectedValue.ToString().Equals(Flag) && txtName.Text.Equals(Name) &&
txtCard.Text.Equals(Card) && txtPhone.Text.Equals(Phone) && txtAddress.Text.Equals(Address) && txtComment.Text.Equals(Comment))
{
Response.Write("<script language=javascript>alert('选项没有任何改动,请保持至少一个或一个以上选项改动')</script>");
return;
}
else
{
Emp emp=new Emp();
emp.EmpId=int.Parse(id);
emp.LoginName=txtUserId.Text;
emp.UserPass=txtPwd.Text;
emp.UserFlag=DdlModify.SelectedValue.ToString();
emp.UserName=txtName.Text;
emp.Card=txtCard.Text;
emp.Phone=txtPhone.Text;
emp.Address=txtAddress.Text;
emp.Comment=txtComment.Text;
// Emp emp=new Emp(int.Parse(id),txtUserId.Text,txtPwd.Text,DdlModify.SelectedValue.ToString(),txtName.Text,txtCard.Text,txtPhone.Text,txtAddress.Text,txtComment.Text);
bool flag=emp.updateEmp(emp);
if(flag)
{
Response.Write("<script language=javascript>alert('更新成功')</script>");
//WebMessageBox.ShowInfo("更新成功","更新");
}
Server.Transfer("UserManager.aspx");
}
// Session["userId"]="";
// Session["pwd"]="";
// Session["userFlag"]="";
// Session["userName"]="";
// Session["Card"]="";
// Session["Phone"]="";
// Session["Address"]="";
// Session["Comment"]="";
}

private void ReturnBtn_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Response.Redirect("UserManager.aspx");
}
}
}
...全文
876 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxf654 2007-02-15
  • 打赏
  • 举报
回复
up
ojekleen5 2007-02-15
  • 打赏
  • 举报
回复
哇呀..好多session
zerohk 2007-02-14
  • 打赏
  • 举报
回复
.
gngnandgngn 2007-02-14
  • 打赏
  • 举报
回复
ascx的页面中会出现这种情况, 至少我认为是个bug, 所以从来不用ascx
快乐的毛毛虫 2007-02-14
  • 打赏
  • 举报
回复
这个问题应该是你前面的框子,有加autopostback=true,找一下有没有
shilei831115 2007-02-14
  • 打赏
  • 举报
回复
txtUserId.Text=Session["userId"].ToString();
txtPwd.Text=Session["pwd"].ToString();
DdlModify.SelectedValue=Session["userFlag"].ToString();
txtName.Text=Session["userName"].ToString();
txtCard.Text=Session["Card"].ToString();
txtPhone.Text=Session["Phone"].ToString();
txtAddress.Text=Session["Address"].ToString();
txtComment.Text=Session["Comment"].ToString();


第一次见这么大批量用Session的 太累了

封装一个结构多好啊
dyduyan 2007-02-14
  • 打赏
  • 举报
回复
还是没有解决
kisssuner 2007-02-14
  • 打赏
  • 举报
回复
把定义的事件以及代码删除掉,保存,然后重新再定义一次
任亚军 2007-02-14
  • 打赏
  • 举报
回复
ispostback 去掉
Mark2Win 2007-02-14
  • 打赏
  • 举报
回复
最近我也遇到事件触发两次的问题,经查,是vs2005在cs代码中注册了事件

(见你代码的this.UpdateBtn.Click += new System.Web.UI.ImageClickEventHandler(this.UpdateBtn_Click);
this.ReturnBtn.Click += new System.Web.UI.ImageClickEventHandler(this.ReturnBtn_Click);
this.Load += new System.EventHandler(this.Page_Load);)

然后在.aspx页面中又注册了事件:onClick=".....", 于是触发两次,将任意一个注册删除即可。
javabuilder9 2007-02-14
  • 打赏
  • 举报
回复
恩 关注!
lizhongbin 2007-02-14
  • 打赏
  • 举报
回复
打个断点,跟一下不就知道怎么回事了吗?

把这个if(!IsPostBack)判断先注释掉看看
wz2zf 2007-02-14
  • 打赏
  • 举报
回复
用那么多SESSION是不是不太好呢
foxfoxfoxchen 2007-02-14
  • 打赏
  • 举报
回复
应该是其它控件的AutoBack设置为了True!把非提交的控件该属性都删掉,就行了。
dyduyan 2007-02-13
  • 打赏
  • 举报
回复
还有更加奇怪的了
我朋友给我在事件的开头加了一段读取用户信息的javascript
用response.write
打出来的
居然这下就好了
修改了和不修改都只点一下就提交了
但报告修改成功的窗口弹不出来了
还有显示用户信息的那段代码调试的时候走了,但不跳,如果修改的话
不修改任何地方,就会跳出取得text文本值晕了
cpp2017 2007-02-13
  • 打赏
  • 举报
回复
奇了, 你把imagebutton换成button看看?
dyduyan 2007-02-13
  • 打赏
  • 举报
回复
第二次UpdateBtn_Click这事件就执行了
如果不修改任何地方
UpdateBtn_Click这事件立即就执行
dyduyan 2007-02-13
  • 打赏
  • 举报
回复
刚才调试了一下,修改过以后按提交第一次没有反应page_load执行的
但UpdateBtn_Click这个事件不执行
cpp2017 2007-02-13
  • 打赏
  • 举报
回复
没反应的时候page_load执行吗?
dyduyan 2007-02-13
  • 打赏
  • 举报
回复
调试过的
还是一样,我只要修改了任意地方他就要按两下才会反应
不修改地方就会立即弹出窗口,也就是立即执行了下面的代码
加载更多回复(11)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧