Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从静态方法调用非静态方法并绑定GridView_C#_Asp.net - Fatal编程技术网

C# 从静态方法调用非静态方法并绑定GridView

C# 从静态方法调用非静态方法并绑定GridView,c#,asp.net,C#,Asp.net,嗨,我的静态方法是 [WebMethod(EnableSession = true)] public static List<Entity.Report> ChartNavigation(string type, string user, string date) { WebForm2 objForm = new WebForm2(); objForm.BindCVTrackerForNavigation(user, date);

嗨,我的静态方法是

[WebMethod(EnableSession = true)]
public static List<Entity.Report> ChartNavigation(string type, string user, string date)
{


        WebForm2 objForm = new WebForm2();
        objForm.BindCVTrackerForNavigation(user, date);

        List<Entity.Report> listchart = new List<Entity.Report>();
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Recruitment"].ConnectionString))
        {
            string sqlString = "GetNumberOfCVSentForChartNavigation";
            using (SqlCommand cmd = new SqlCommand(sqlString, conn))
            {
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@UserName", user.Replace("\"", "")));
                cmd.Parameters.Add(new SqlParameter("@Date", date.Replace("\"", "")));
                conn.Open();
                SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                while (rdr.Read())
                {
                    Entity.Report obj = new Entity.Report();
                    Utilities.Common.Fill(obj, rdr);
                    listchart.Add(obj);
                }
                conn.Close();
            }
        }
        return listchart;
}

当数据源应用于
gvCVTracker
时,它抛出错误
对象引用未设置为对象的实例。
我不知道问题出在哪里?任何帮助都将不胜感激。谢谢。

您必须使用Page.LoadControl创建WebForm2的实例,以便它也可以处理控件的初始化。

什么是
gvCVTracker
?@Andrei它是GridViewId何时调用此非静态方法?你确定GridView是在那时创建的吗?实际上,试着调试代码,当抛出异常时,您将能够准确地看到什么是空的。当抛出异常时,您可以看到innerexception吗?你能发布那个吗?@Andrei我已经调试了我的代码。当调用非静态方法时,网格视图为空。
protected void BindCVTrackerForNavigation(string User,string Date)
{
        DataSet ds = new DataSet();
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Recruitment"].ConnectionString))
        {
            string sqlString = "GetNumberOfCVSentForNavigation";
            using (SqlCommand cmd = new SqlCommand(sqlString, conn))
            {
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@UserName", User.Replace("\"", "")));
                cmd.Parameters.Add(new SqlParameter("@Date", Date.Replace("\"", "")));
                conn.Open();
                SqlDataAdapter DA1 = new SqlDataAdapter(cmd);
                DA1.Fill(ds);
                conn.Close();
            }
            if (ds.Tables.Count > 0)
            {
                if (ds.Tables[0].Rows.Count > 0)
                {
                    gvCVTracker.DataSource = ds.Tables[0];
                    gvCVTracker.DataBind();
                }
            }
        }
}