无法在ASP.NET中使用Linq获取数据以返回到我的网格视图

时间:2014-04-23 17:32:56

标签: asp.net database linq

不确定为什么但我无法获取我的数据。它开始说没有数据记录显示。但是,当我选择我正在寻找的信息的月份和年份时,网格视图会消失。任何建议

    NutritionEntities context;
    protected void Page_Load(object sender, EventArgs e)
    {
        context = new NutritionEntities();
        if (!IsPostBack)
        {            

            for (int i = DateTime.Now.Year; i > 1988; i--)
            {   
                ddlYear.Items.Add(new ListItem(i.ToString(), i.ToString()));

            }

            int selectedMonth = int.Parse(ddlMonth.SelectedValue);
            int selectedYear = int.Parse(ddlYear.SelectedValue);
            GridView1.DataSource =
                from exercise in context.Exercises
                where exercise.exerciseDate.Value.Month == selectedMonth && exercise.exerciseDate.Value.Year == selectedYear
                select new
                {
                    exercise.exerciseDate,
                    exercise.duration,
                    exercise.caloriesBurned,
                    exercise.averageHR,
                    exercise.distanceInMiles,
                    exercise.notes

                };


            GridView1.DataBind();
        }
    }

    protected void ddlMonth_SelectedIndexChanged(object sender, EventArgs e)
    {

        int selectedMonth = int.Parse(ddlMonth.SelectedValue);
        int selectedYear = int.Parse(ddlYear.SelectedValue);
        GridView1.DataSource =
            from exercise in context.Exercises
             where exercise.exerciseDate.Value.Month == selectedMonth && exercise.exerciseDate.Value.Year == selectedYear
             select new
             {
                 exercise.exerciseDate,
                 exercise.duration,
                 exercise.caloriesBurned,
                 exercise.averageHR,
                 exercise.distanceInMiles,
                 exercise.notes

             };


        GridView1.DataBind();
    }

    protected void ddlYear_SelectedIndexChanged(object sender, EventArgs e)
    {

        int selectedMonth = int.Parse(ddlMonth.SelectedValue);
        int selectedYear = int.Parse(ddlYear.SelectedValue);
        GridView1.DataSource =
            from exercise in context.Exercises
             where exercise.exerciseDate.Value.Month == selectedMonth && exercise.exerciseDate.Value.Year == selectedYear
             select new
             {
                 exercise.exerciseDate,
                 exercise.duration,
                 exercise.caloriesBurned,
                 exercise.averageHR,
                 exercise.distanceInMiles,
                 exercise.notes

             };


        GridView1.DataBind();
    }

1 个答案:

答案 0 :(得分:0)

你已经验证了你的控制网格的绑定,我建议在回页时只将对象添加到pageLoad上的网格的数据源,如下所示:

protected void Page_Load(object sender,EventArgs e)     {

    if (!IsPostBack)
    {
       GridView1.DataSource =
        from exercise in context.Exercises
         where exercise.exerciseDate.Value.Month == selectedMonth && exercise.exerciseDate.Value.Year == selectedYear
         select new
         {
             exercise.exerciseDate,
             exercise.duration,
             exercise.caloriesBurned,
             exercise.averageHR,
             exercise.distanceInMiles,
             exercise.notes

         };
    }
    GridView1.DataBind();

}

问题是当你将对象添加到数据源时,当任何事件刷新网页时如选择控件解除绑定,我希望帮助你,看到你!!