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

请教高手:控件事件如何写在类上面,而不直接写在.CS文件里面
我有好几个页面都有GridView1事件RowDataBound,这些事件内容都很相似,能不能不写在.CS文件里面,而写在类里面调用?(小小的面向对象)


r如:page1.cs

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
   
if (e.Row.RowType == DataControlRowType.DataRow)
  {
  e.Row.Cells[2].Text="<a href=\"#\" onclick=\"javascript:window.open('View.aspx?sort=1& id="+e.Row.Cells[1].Text.Trim()+"');\">测试</a>";
}

  }


------解决方案--------------------
控件的事件应该写在装在控件页面对应的类里面
------解决方案--------------------
方法1 做个公用控件,把这个grewview 做成一个用户控件 (推荐)
 方法2 写个公共方法,

public void RowDataBound( GridViewRowEventArgs e)
{
 if{e.Row.RowType == DataControlRowType.DataRow) 

e.Row.Cells[2].Text=" <a href=\"#\" onclick=\"javascript:window.open('View.aspx?sort=1& amp; id="+e.Row.Cells[1].Text.Trim()+"');\">测试 </a>"; 

}


在调用处:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 


 xxxx.RowDataBound( GridViewRowEventArgs e);


}