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时,这个就会提示我, 为将对象引用设置到对象实例。谁知道是什么原因?急死我了。
拜托了。小妹在此谢谢各位哥哥姐姐们了。我的其他联系方式:QQ 286609587  E-mail: [email protected]

解决方案 »

  1.   

    是不是在Page_Load中也执行了一次,你可能没有加IsPostBack判断吧
      

  2.   

    上面的代码,我看不出来问题看下这里
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    下面这句是不是有2个
    this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);
      

  3.   

    this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick)
    是你手动写的吗?你看看在InitializeComponent 里面是不是还有一个?
      

  4.   

    InitializeComponent
    中有一个的可能性还比较大吧
      

  5.   

    yumenjianke(实践出真知) 
    private void Page_Load(object sender, System.EventArgs e)
    {
    this.Strdbpath=Server.MapPath("db01.mdb");
    if (!IsPostBack) //页面初次加载时发生
    {
                                      这里是页面初始化代码好多。。
    }
    }
    断点时没有执行到 Page_Load 哦wslinfeng(林风) 
    this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);
    页面搜索只有一个。cpp2017(慕白兄)
    我是在 web窗体设计器生成代码里找出来贴这儿的。
    private void InitializeComponent()这个方法里找到的。
      

  6.   

    蔡GG,帮我看了下了。 
    呵呵
    应该是把InitializeComponent()里的this.Aback.ServerClick += new System.EventHandler(this.Aback_ServerClick);
    删了。
    就不会多执行了。 
    下次做这个HtmlAnchor控件都得乖乖手动把这个委托删下了。呵呵。谢谢你们了。结贴。
      

  7.   

    其实完全不必要用HtmlAnchor,用个LINKBUTTON完全可以实现你要的效果,而且WEB控件更适合编程