ASP.NET gridview绑定不起作用/控件不显示

时间:2009-06-09 19:22:02

标签: c# asp.net gridview

另一个初学者问题。为什么下面的asp.net页面代码不能正常工作?

protected void Page_Load(object sender, EventArgs e)
{
    List<string> list = new List<string>();
    list.Add("Teststring");
    this.GridView.DataSource = list;
}

GridView是该asp页面上的GridView控件。但是,根本没有网格显示。它既启用又可见。另外,当我调试时,GridView.Rows.Count为0.我总是假设您可以添加通用列表和实现IList作为DataSource的所有类,然后gridview将自动显示内容?或者这就是它在page_load事件处理程序中完成的原因。如果,如何在启动时没有任何用户交互的情况下填充网格?

再次感谢。

3 个答案:

答案 0 :(得分:4)

你应该调用DataBind()。

答案 1 :(得分:3)

您忘了调用GridView的.DataBind()方法。这是将控件链接到其数据源并加载结果的内容。

示例:

protected void Page_Load(object sender, EventArgs e)
{
    List<string> list = new List<string>();
    list.Add("Teststring");
    this.GridView.DataSource = list;
    this.GridView.DataBind();
}

答案 2 :(得分:2)

与winforms不同,对于ASP开发,您需要专门调用GridView.DataBind();。我还将该代码分解为一个单独的方法,并将初始调用包装回检查回发。这将为您节省一些麻烦。

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostback)
   {
       List<string> list = new List<string>();
       list.Add("Teststring");
       bindMydatagrid(list);
   }
}

protected void bindMydatagrid(List<string> list)
{
    gv.DataSource = list;
    gv.DataBind();
}