在ASPX文件里写:
<asp:GridView id="gv1"... OnRowDataBound="gv1_RowDataBound"/>
CS里写:
 protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
    ...
}
可以实现gridview的事件。
但我想直接在CS里写所有的代码,在ASPX不出现任何代码应该怎么写呢?
我先是这样写的;
gv1.RowDataBound += new GridViewRowEventHandle(gv_RowDataBound);
但是没有任何效果,请教高手应该怎么去实现啊!

解决方案 »

  1.   

    gv1.RowDataBound += new GridViewRowEventHandle(gv_RowDataBound);
    但是没有任何效果,请教高手应该怎么去实现啊!
    =========
    1.
    这段代码,得在 Page Init 阶段或者之前完成void Page_Init(object sender, EventArgs e) {
        gv1.RowDataBound += new GridViewRowEventHandle(gv_RowDataBound); 
    }
    2.
    至于为什么, 请您baidu 并详细参阅 ASP.NET页面生命周期 以及 控件生命周期
      

  2.   

    异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 19:     public void Page_Init(object sender, EventArgs e)
    行 20:     {
    行 21:         gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
    行 22:     } 
      

  3.   

    2.
    至于为什么, 请您baidu 
    -----------------------------
    为什么BAIDU不GOOGLE啊?
      

  4.   

    请问:为什么不要写在aspx里面?
    运行后声称的html又看不出来
      

  5.   

    System.NullReferenceException: 未将对象引用设置到对象的实例
    =====
    gv1 不会时动态添加的吧?
      

  6.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using ThayerJJ.CC.BLL;
    using ThayerJJ.CC.Model;
    using System.Text;
    using System.IO;public partial class Manage_order_Default : System.Web.UI.Page
    {
        private static System.Web.UI.WebControls.GridView gv;
        protected void Page_Init(object sender, EventArgs e)
        {
            gv = new GridView();
            gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
           
        }
            protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = getAjaxTable();//Label1在ASPX页面里有申明,GV没有
        }
       
        public string getAjaxTable()
        {        
            BllEmailSetting bll = new BllEmailSetting();
            gv = new GridView();
            gv.EmptyDataText = "当前无数据";
            gv.DataSource = bll.GetList("");
            gv.DataBind();
         
            gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
            StringBuilder sb = new StringBuilder();
            HtmlTextWriter htw = new HtmlTextWriter(new StringWriter(sb));
            gv.RenderControl(htw);
            string s = sb.ToString();
            return s;
        }    protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            Response.Write("22");//这里没有触发到
        }
      
    }
      

  7.   

    GV在设计页没有声明也没关系呀,同样在Page_Load里GridView aa=new GridView();this.Page.Form.Controls.Add(aa);