我刚接触ASP不久,这个问题让我很郁闷
我希望做一个用户控件做搜索,把结果绑定到gridview上(也在用户控件中),可是运行没有结果。
把代码考到页面上直接运行的话,却是可以的,这是为什么啊?
设断点查看,发现gridview.datasource显示“在上下文没有datasource”....
这是代码:
  Product product = new Product();
  GridView1.DataSource = product.GetAllProducts();
  GridView1.DataBind();

解决方案 »

  1.   

    发现gridview.datasource显示“在上下文没有datasource”.... GridView1.DataSource = product.GetAllProducts(); 
    ======================================================
    你的gridview名字到底是甚么? 再贴点代码看看,信息太少。
      

  2.   

    刚接触asp.net,你可以看看Scott Mitchell是如何处理GetAllProducts这个方法的。最好先把它的这个入门系列5、6十篇文章看一遍,再写程序。
      

  3.   

    除非你是使用LoadControl动态加载用户控件,否则用户控件和页面没有什么区别。如果有问题,可能是你写的代码太多了,自己看不清楚了。尽可能少写代码,才能得到可靠的程序。
      

  4.   

    呃……我没写清楚。就只有一个gridview1,我只摘出了绑定的代码,就这几句
    监视GridView1.DataSource,它写的是“当前上下文不存在“DataSource””。
    把代码贴到页面中直接运行时也存在这个问题
      

  5.   

    GridView1.DataSource = product.GetAllProducts(); 
    除非product.GetAllProducts(); 返回一个table
      

  6.   

    我把原来的控件又重新做了一边,拖到页面里后运行成功了一次,然后我对GridView1的一些属性做了一些修改,
    重新运行又不可以了疯了
    这之后不能再运行了
    那个Product类做的应该没有问题,直接在页面里试验是可以的
    这是用户控件里的代码;
    protected void Page_Load(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 0;
            DropDownList3.Visible = false;
            DropDownList4.Visible = false;
            TextBox2.Visible = false;
            Product product = new Product();
            GridView1.DataSource = product.GetAllProducts();
            GridView1.DataBind();
        }
      

  7.   

    [code=C#]    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                MultiView1.ActiveViewIndex = 0;
                DropDownList3.Visible = false;
                DropDownList4.Visible = false;
                TextBox2.Visible = false;
                Product product = new Product();
                GridView1.DataSource = product.GetAllProducts();
                GridView1.DataBind();
            }
        }[code]