buttn的click事件执行了两次,Page_load也执行了两次

时间:2022-01-16 18:53:20
今天突然发现,(以为以前没有--可以确定),在点添加按钮时出现了两条记录,后发现,Button的Click和Page_Load事件都执行了两次;
网上搜索有几种答案img的src="",程序中不存在;
 AutoEventWireup="true"设为 AutoEventWireup="false"设为以后Page_Load都不执行;
也有说IsPostBack=false,也没有问题; 
也有说是刷新了页面,但是按钮执行完以后并没有刷新的程序;
另说是DropDownList的SelectedIndexChanged导致页面刷新,页面中没有;
还有说是iis中默认文档为空,但是有设置;
也有说是程序原因,但是一直没找到;
请哪位高手解释一下,还有什么原因导致执行两次,但是以前是执行成功的,发现有的客户那里执行了两次,很郁闷;

30 个解决方案

#1


系统中有两个相同的页面所致?!@#

#2


在Page_Load里面加上
if(this.IsPostBack)
    return;

#3


引用 2 楼 silentwins 的回复:
在Page_Load里面加上
C# codeif(this.IsPostBack)return;

不行呢,没起作用

#4


引用 1 楼 ljx85249201 的回复:
系统中有两个相同的页面所致?!@#

不是,没有重复页面

#5


引用 4 楼 ljx85249201 的回复:
引用 1 楼 ljx85249201 的回复:
系统中有两个相同的页面所致?!@#

不是,没有重复页面


啊,你忘记换账号了~!

#6


引用 5 楼 silentwins 的回复:
引用 4 楼 ljx85249201 的回复:
引用 1 楼 ljx85249201 的回复:
系统中有两个相同的页面所致?!@#

不是,没有重复页面


啊,你忘记换账号了~!
呵呵,谢谢,我自问自答

#7


自己顶

#8


???怪

#9


哪位高手遇到过

#10


来点代码

#11


 Page_Load
if (!IsPostBack)
{
 Button2.Attributes.Add("onclick", "this.disabled='true';" + etPostBackEventReference(Button2));
....
}

基本都是这样了
点button时都执行了两遍page_load和click,

#12


没遇见过呢 断点走一篇试试呢 

#13


自己顶

#14


引用 12 楼 tzs2304 的回复:
没遇见过呢 断点走一篇试试呢

没看出啥问题来呢,先跑的page_load,然后跑了一个selectesindexchanged,接着就是button了,完了以后又从头来了一遍; 不知道啥原因啊

#15


ding 

#16


写pageload里


if(!isposback){

写内容。

}

#17


引用 16 楼 hailiu123 的回复:
写pageload里


if(!isposback){

写内容。

}

 if (!IsPostBack)
        {

            Button2.Attributes.Add("onclick", "this.disabled='true';" + GetPostBackEventReference(Button2));
            if (aud1 == "审核")
            {
                btnAudit.Enabled = false;
                btnAuditNo.Enabled = true;
                Button2.Visible = false;
            }
            else
            {
                btnAudit.Enabled = true;
                btnAuditNo.Enabled = false;
            }
            if (aud2 == "审核")
            {
                btnCustomer.Enabled = false;
                btnCustomerNo.Enabled = true;
            }
            else
            {
                btnCustomer.Enabled = true;
                btnCustomerNo.Enabled = false;

            }
}
里面都是一些控制显示不显示的信息;aud2是从上一页面传过来的参数;
aud2 = Request.QueryString["aud2"] == null ? "" : Request.QueryString["aud2"].ToString().Trim();

#18


恩恩 我前几天也刚发现这问题,觉得特别扭。。

#19


引用 18 楼 meteorfalling 的回复:
恩恩 我前几天也刚发现这问题,觉得特别扭。。

解决没有...

#20


没 解决的话 早说了 
因为对我要做的东西暂时没啥影响 就丢在一边了

#21


引用 20 楼 meteorfalling 的回复:
没 解决的话 早说了
因为对我要做的东西暂时没啥影响 就丢在一边了

呵呵,我继续顶,现在项目上线了,有客户出现了重复情况呢,要尽快解决呢,

#22


估计你没有刷新页面吧 试试看 Response.Redirect("页面路径");

#23


引用 22 楼 wodezhuai 的回复:
估计你没有刷新页面吧 试试看 Response.Redirect("页面路径");

Response.Write(@"<script language=javascript>parent.window.opener.parent.Right.location.reload();alert('添加成功');</script>");//window.parent.close();
               
保存以后用这个js刷新了前面的list页面,
Response.Write(@"<script language=javascript>window.open('Edit.aspx?compcode=" + com + "&sffh=" + sffh + "&aud1=" + aud1 + "&aud2=" + aud2 + "&id=" + ID + "','','left='+((screen.width-950-10)/2)+',top='+((screen.height-700-30)/2)+',menubar=no,statusbar=yes,scrollbars=3,width=950,height=700','')</script>");

list页面用这个打开的

#24


顶 

#25


引用 11 楼 ljx85249201 的回复:
Page_Load
if (!IsPostBack)
{
Button2.Attributes.Add("onclick", "this.disabled='true';" + etPostBackEventReference(Button2));
....
}

基本都是这样了
点button时都执行了两遍page_load和click,


肯定要执行两次。你换成用input的button加个runat=server就可以了。

#26


引用 25 楼 mngzilin 的回复:
引用 11 楼 ljx85249201 的回复:
Page_Load
if (!IsPostBack)
{
Button2.Attributes.Add("onclick", "this.disabled='true';" + etPostBackEventReference(Button2));
....
}

基本都是这样了
点button时都执行了两遍page_load和click,


肯定要执行两次。你换成用input的button加个runat=server就可以了。

好,我试试.......

#27


在load最前面加上if(this.IsPostBack)
    return;
就行了

#28


解决了,我把那个按钮删了,重新弄了一遍,就好了,变态的问题,辛苦各位了,但是还是没搞懂为什么不行.......55555555555.............

#29


这个有很多情况的,我碰到过很多,加我为好友。

#30


if(this.IsPostBack)
    return;

#1


系统中有两个相同的页面所致?!@#

#2


在Page_Load里面加上
if(this.IsPostBack)
    return;

#3


引用 2 楼 silentwins 的回复:
在Page_Load里面加上
C# codeif(this.IsPostBack)return;

不行呢,没起作用

#4


引用 1 楼 ljx85249201 的回复:
系统中有两个相同的页面所致?!@#

不是,没有重复页面

#5


引用 4 楼 ljx85249201 的回复:
引用 1 楼 ljx85249201 的回复:
系统中有两个相同的页面所致?!@#

不是,没有重复页面


啊,你忘记换账号了~!

#6


引用 5 楼 silentwins 的回复:
引用 4 楼 ljx85249201 的回复:
引用 1 楼 ljx85249201 的回复:
系统中有两个相同的页面所致?!@#

不是,没有重复页面


啊,你忘记换账号了~!
呵呵,谢谢,我自问自答

#7


自己顶

#8


???怪

#9


哪位高手遇到过

#10


来点代码

#11


 Page_Load
if (!IsPostBack)
{
 Button2.Attributes.Add("onclick", "this.disabled='true';" + etPostBackEventReference(Button2));
....
}

基本都是这样了
点button时都执行了两遍page_load和click,

#12


没遇见过呢 断点走一篇试试呢 

#13


自己顶

#14


引用 12 楼 tzs2304 的回复:
没遇见过呢 断点走一篇试试呢

没看出啥问题来呢,先跑的page_load,然后跑了一个selectesindexchanged,接着就是button了,完了以后又从头来了一遍; 不知道啥原因啊

#15


ding 

#16


写pageload里


if(!isposback){

写内容。

}

#17


引用 16 楼 hailiu123 的回复:
写pageload里


if(!isposback){

写内容。

}

 if (!IsPostBack)
        {

            Button2.Attributes.Add("onclick", "this.disabled='true';" + GetPostBackEventReference(Button2));
            if (aud1 == "审核")
            {
                btnAudit.Enabled = false;
                btnAuditNo.Enabled = true;
                Button2.Visible = false;
            }
            else
            {
                btnAudit.Enabled = true;
                btnAuditNo.Enabled = false;
            }
            if (aud2 == "审核")
            {
                btnCustomer.Enabled = false;
                btnCustomerNo.Enabled = true;
            }
            else
            {
                btnCustomer.Enabled = true;
                btnCustomerNo.Enabled = false;

            }
}
里面都是一些控制显示不显示的信息;aud2是从上一页面传过来的参数;
aud2 = Request.QueryString["aud2"] == null ? "" : Request.QueryString["aud2"].ToString().Trim();

#18


恩恩 我前几天也刚发现这问题,觉得特别扭。。

#19


引用 18 楼 meteorfalling 的回复:
恩恩 我前几天也刚发现这问题,觉得特别扭。。

解决没有...

#20


没 解决的话 早说了 
因为对我要做的东西暂时没啥影响 就丢在一边了

#21


引用 20 楼 meteorfalling 的回复:
没 解决的话 早说了
因为对我要做的东西暂时没啥影响 就丢在一边了

呵呵,我继续顶,现在项目上线了,有客户出现了重复情况呢,要尽快解决呢,

#22


估计你没有刷新页面吧 试试看 Response.Redirect("页面路径");

#23


引用 22 楼 wodezhuai 的回复:
估计你没有刷新页面吧 试试看 Response.Redirect("页面路径");

Response.Write(@"<script language=javascript>parent.window.opener.parent.Right.location.reload();alert('添加成功');</script>");//window.parent.close();
               
保存以后用这个js刷新了前面的list页面,
Response.Write(@"<script language=javascript>window.open('Edit.aspx?compcode=" + com + "&sffh=" + sffh + "&aud1=" + aud1 + "&aud2=" + aud2 + "&id=" + ID + "','','left='+((screen.width-950-10)/2)+',top='+((screen.height-700-30)/2)+',menubar=no,statusbar=yes,scrollbars=3,width=950,height=700','')</script>");

list页面用这个打开的

#24


顶 

#25


引用 11 楼 ljx85249201 的回复:
Page_Load
if (!IsPostBack)
{
Button2.Attributes.Add("onclick", "this.disabled='true';" + etPostBackEventReference(Button2));
....
}

基本都是这样了
点button时都执行了两遍page_load和click,


肯定要执行两次。你换成用input的button加个runat=server就可以了。

#26


引用 25 楼 mngzilin 的回复:
引用 11 楼 ljx85249201 的回复:
Page_Load
if (!IsPostBack)
{
Button2.Attributes.Add("onclick", "this.disabled='true';" + etPostBackEventReference(Button2));
....
}

基本都是这样了
点button时都执行了两遍page_load和click,


肯定要执行两次。你换成用input的button加个runat=server就可以了。

好,我试试.......

#27


在load最前面加上if(this.IsPostBack)
    return;
就行了

#28


解决了,我把那个按钮删了,重新弄了一遍,就好了,变态的问题,辛苦各位了,但是还是没搞懂为什么不行.......55555555555.............

#29


这个有很多情况的,我碰到过很多,加我为好友。

#30


if(this.IsPostBack)
    return;