日期:2014-05-18  浏览次数:20785 次

方法与委托不匹配

private   void   InitializeComponent()
{  
this.LinkNextPage1.Click   +=   new   System.EventHandler(this.NavigateToPage1);
this.LinkLastPage1.Click   +=   new   System.EventHandler(this.NavigateToPage1);
   
this.LinkFirstPage1.Click   +=   new   System.EventHandler(this.NavigateToPage1);


}


private   void   NavigateToPage1(object   sender,   System.EventArgs   e,DataGrid   DataGrids)
{string   PageInfo     =   ((LinkButton)sender).CommandName;
switch   (PageInfo)
{
      case   "First ":
                  DataGrids.CurrentPageIndex   =   0;
break;
    case   "pre ":
              if   (DataGrids.CurrentPageIndex   >   0)
    DataGrids.CurrentPageIndex   -=   1;
break;
    case   "Next ":
          if(DataGrids.CurrentPageIndex   <   (DataGrids.PageCount   -   1))
DataGrids.CurrentPageIndex   +=   1;
break;
    ase   "last ":
              DataGrids.CurrentPageIndex   =   (DataGrids.PageCount   -   1);
break;
  }


}
      抱错:
    C:\Inetpub\wwwroot\HuaSoftDRP\mdgl\mdpsgl\psshqr.aspx.cs(84):   方法“HuaSoftDRP.zbpsgl.psshqr.NavigateToPage1(object,   System.EventArgs,   System.Web.UI.WebControls.DataGrid)”与委托“void   System.EventHandler(object,   System.EventArgs)”不匹配
问题:
在保留自定义函数NavigateToPage1()的参数不变,又要不出错
即在InitializeComponent()中调用NavigateToPage1()不会出错


------解决方案--------------------
sf
------解决方案--------------------
NavigateToPage1 参数不改变,就不能加到 click 事件上
------解决方案--------------------
this.LinkFirstPage1.Click += new System.EventHandler(this.NavigateToPage1(object sender, System.EventArgs e,DataGrid DataGrids));
------解决方案--------------------
不匹配 把它搞匹配就得了 看怎么能搞匹配 就怎么搞咯
------解决方案--------------------
HuaSoftDRP.zbpsgl.psshqr.NavigateToPage1(object, System.EventArgs, System.Web.UI.WebControls.DataGrid)”与委托“void System.EventHandler(object, System.EventArgs)”不匹配 若要 NavigateToPage1 参数不改变 就写个委托继承System.EventHandler
------解决方案--------------------
Click需要的委托的参数是(object sender, System.EventArgs e)

NavigateToPage1提供的是(object sender, System.EventArgs e,DataGrid DataGrids)

多了一个DataGrid,所以不匹配。

要不使用自定义的事件,在Click的委托中执行

private void LinkNextPage1_Click(object sender, System.EventArgs e)
{
//得到DataGrids
DataGrid DataGrids = new DataGrids();
//触发自定义事件
MyNevigateEvent(sender, e, DataGrids);
}

------解决方案--------------------
EventHandler 2个参数
你这里3个参数,当然不匹配。
把DataGrid DataGrids去掉。
------解决方案--------------------
hoho