VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 841|回复: 7

System.Web.UI.HtmlControls.HtmlAnchor控件的ServerClick方法为什么会执行两次??

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-11 09:40:01 | 显示全部楼层 |阅读模式
protected System.Web.UI.HtmlControls.HtmlAnchor Aback;

……
this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);
……

public void Aback_ServerClick(object sender, System.EventArgs e)
{
//这位置的代码执行了两次
int lbid=Convert.ToInt32(this.ListBox1.SelectedItem.Value.ToString());//行1
……
}//行9

---------------------------------------
以上是问题的代码

我点这个后退按钮(Aback)时,在断点里看到,这个ServerClick方法里的代码执行了两次,第一次,执行完最后一句到 行9 } 时,没有出来,而是继续走到 行1。
因为行的内容是listbox,所以,第二次执行到行1时,这个就会提示我, 为将对象引用设置到对象实例。

谁知道是什么原因?急死我了。
拜托了。小妹在此谢谢各位哥哥姐姐们了。

回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-15 14:18:01 | 显示全部楼层
是不是在Page_Load中也执行了一次,你可能没有加IsPostBack判断吧
回复

使用道具 举报

0

主题

60

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-1-15 15:00:01 | 显示全部楼层
上面的代码,我看不出来问题

看下这里
        private void InitializeComponent()
                {   
                        this.Load += new System.EventHandler(this.Page_Load);

                }
                #endregion


下面这句是不是有2个
this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);

回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-1-15 15:18:01 | 显示全部楼层
this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick)
是你手动写的吗?

你看看在InitializeComponent 里面是不是还有一个?
回复

使用道具 举报

0

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-15 18:09:02 | 显示全部楼层
InitializeComponent
中有一个的可能性还比较大吧
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-15 20:09:01 | 显示全部楼层
o01029
private void Page_Load(object sender, System.EventArgs e)
                {               
                        this.Strdbpath=Server.MapPath("db01.mdb");
                        if (!IsPostBack) //页面初次加载时发生
                        {
                                  这里是页面初始化代码好多。。。。。
                        }                       
                }
断点时没有执行到 Page_Load 哦。。。

3521565
this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);
页面搜索只有一个。

shenmue024
我是在 web窗体设计器生成代码里找出来贴这儿的。
private void InitializeComponent()这个方法里找到的。


回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-16 03:36:02 | 显示全部楼层
蔡GG,帮我看了下了。
呵呵
应该是把InitializeComponent()里的this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);
删了。
就不会多执行了。
下次做这个HtmlAnchor控件都得乖乖手动把这个委托删下了。呵呵。

谢谢你们了。
回复

使用道具 举报

0

主题

60

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-1-19 12:36:02 | 显示全部楼层
其实完全不必要用HtmlAnchor,用个LINKBUTTON完全可以实现你要的效果,而且WEB控件更适合编程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表