将函数放在类而不是代码后面

时间:2011-01-07 22:55:12

标签: asp.net

我在代码隐藏文件中有一个函数,用于响应gridview事件:

protected void GridviewEval(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
      foreach (TableCell cell in e.Row.Cells)
      {
       if (cell.Text == "0") { cell.Text = "-"; }
      }

}  }

它目前位于页面背后的代码中,我将在其他页面中使用它。我想在其他页面中使用相同的代码。当我将函数剪切并粘贴到类中时,它无效。

我确信这很简单,但我无法理解。

感谢。

2 个答案:

答案 0 :(得分:0)

至少有两种方法。从您创建的类派生您的页面代码并在其中移动代码,或者使用代理机制,您可以在其中拥有单独的类,单例或静态类,并使页面中的方法仅作为将调用传递给singleton / static类的代理。

答案 1 :(得分:0)

这个方法很容易是静态的,所以只是静态类中的静态方法而且你是无家可归的。

public static class CommonEventHandlers
{
   public static void GridviewEval(object sender, GridViewRowEventArgs e)
   {
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
        foreach (TableCell cell in e.Row.Cells)
        {
           if (cell.Text == "0") { cell.Text = "-"; }
        }
      }
   }    
}

然后在您拥有gridview的页面上,您可以像这样连接事件

myGrid.SomeEvent += new SomeEventHandler(CommonEventHandlers.GridviewEval)