我先从xml拿出数据,然后排序,放入到datatable,绑定到gridview为何不显示..
下面是代码...public void showGrid()
{
    DataTable dt = new DataTable();        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("option.xml"));
        XmlNodeList xmllist = xmlDoc.SelectSingleNode("EBS").ChildNodes;
        foreach (XmlNode xn in xmllist)
        {
            XmlElement xe = (XmlElement)xn;
            XmlNodeList node = xe.GetElementsByTagName("column");
            foreach (XmlNode xn1 in node)
            {
                XmlElement xe1 = (XmlElement)xn1;
                XmlNodeList node1 = xe1.ChildNodes;
                if (node1[4].InnerText.Equals("1"))
                {
                    dt.Columns.Add(node1[3].InnerText);
                }
            }
        }//绑定   我跟踪这里
 dgvProduce.DataSource = dt;
 dgvProduce.DataBind();
}
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            showGrid();
        }
}

解决方案 »

  1.   

    单步调试一下.看你的dt里有数据吗?rows.count是否为0?
      

  2.   

    看了下你的代码.你只dt.Columns.Add(node1[3].InnerText); 你只添加了dt的columns而没有添加dt.rows没rows怎么会有数据?
      

  3.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            { 
                DataTable dt = showGrid();
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                dgvProduce.DataSource = dt;
                dgvProduce.DataBind();
      }
    }我显示的时候加过1空行  .....但是就是不显示  奇怪了...没碰到过
      

  4.   

    把aspx中
    dgvProduce的代码也贴出来
      

  5.   

    DataTable dt = showGrid(); 
                DataRow dr = dt.NewRow(); 
                dt.Rows.Add(dr); //你这个dr也没个内容??
                dgvProduce.DataSource = dt; 
                dgvProduce.DataBind(); 
      

  6.   

    <asp:GridView ID="dgvProduce" runat="server" AllowPaging="True" AllowSorting="True"
            CellPadding="4" ForeColor="Black" GridLines="Vertical"
            Style="z-index: 100; left: 204px; top: 230px" 
        AutoGenerateColumns="False" BackColor="White" BorderColor="#DEDFDE" 
        BorderStyle="None" BorderWidth="1px" Height="309px" Width="232px">
            <FooterStyle BackColor="#CCCC99" Wrap="False" />
            <RowStyle BackColor="#F7F7DE" Wrap="False" />
            <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" 
                Wrap="False" />
            <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
            <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" 
                Wrap="False" />
            <AlternatingRowStyle BackColor="White" />
            <EmptyDataRowStyle Wrap="False" />
        </asp:GridView>
      

  7.   

    没有数据的时候我只想显示已空行  这样可以看见列头  
    不过就算我datarow里放数据  dt里跟踪也看见有了  就是不显示
      

  8.   

    汗 AutoGenerateColumns="False"这个属性为false了你也不添加绑定列?而你的 dr又是空行..
    DataRow dr = dt.NewRow(); 
    dt.Rows.Add(dr); //你这个dr也没个内容?? 
      

  9.   

    你的gridview里面设置列头文字了吗???
      

  10.   

    你GridView里的数据是怎么显示的?有可能是你GV里面数据显示写的不对。
      

  11.   

    汗   AutoGenerateColumns="False"  .....true就对了
      

  12.   

    我也觉得dt.Columns.Add(node1[3].InnerText) 这有问题,应该和11楼的那样
      

  13.   

     AutoGenerateColumns="False"将这个先改成 AutoGenerateColumns="true"
    原因你没有添加绑定列