大家帮忙看看这个主从表显示的程序怎么显示不出东西来呢?调试时也没报错!我完全按FORUM里的实例写的呀,哪里不对呢?private void Page_Load(object sender, System.EventArgs e)
    {
     if(!IsPostBack)
     {
      SqlConnection con=DBcon.CreateConnection();
      con.Open();
        SqlDataAdapter da=new SqlDataAdapter();
          DataSet ds=new DataSet();
      da.SelectCommand=new SqlCommand("select pro_name from a_cata; select
pro_b_name from b_cata where a_cata.pro_id=b_cata.pro_id",con);
         da.Fill(ds);       ds.Tables[0].TableName = "a_cata";
      ds.Tables[1].TableName = "b_cata";
       DataColumn Parent =ds.Tables["a_cata"].Columns["pro_id"];
       DataColumn Child  = ds.Tables["b_cata"].Columns["pro_id"];
       DataRelation myrl = new DataRelation("myrl", Parent, Child, false);
       ds.Relations.Add(myrl);
       //进行数据绑定
       this.DataGrid1.DataSource = ds.Tables["a_cata"].DefaultView;
       this.DataGrid1.DataBind();HTML page<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 48px; POSITION:
absolute; TOP: 64px" runat="server"
      AutoGenerateColumns="False" ShowHeader="False" Width="368px">
      <Columns>
       <asp:TemplateColumn>
        <ItemTemplate>
         <TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
          <TR>
           <TD bgColor="#3399ff"><FONT color="#ffffff"><B>
              <%# DataBinder.Eval(Container.DataItem, "pro_name") %>
             </B></FONT>
           </TD>
          </TR>
          <TR>
           <TD align="right">
            <asp:DataGrid id=dgDetail runat="server"
AutoGenerateColumns="False" DataSource='<%#
((System.Data.DataRowView)Container.DataItem).CreateChildView("myrl")
%>' DataKeyField="OrderID" BorderColor="#336666" BorderStyle="Double"
BorderWidth="3px" BackColor="White" CellPadding="4"
GridLines="Horizontal" Width="100%" Font-Size="Smaller">
             <SelectedItemStyle Font-Bold="True" ForeColor="White"
BackColor="#339966"></SelectedItemStyle>
             <ItemStyle ForeColor="#333333" BackColor="White"></ItemStyle>
             <HeaderStyle Font-Bold="True" ForeColor="White"
BackColor="#336666"></HeaderStyle>
             <FooterStyle ForeColor="#333333"
BackColor="White"></FooterStyle>
             <Columns>
              <asp:BoundColumn Visible="False" DataField="OrderID"
ReadOnly="True"></asp:BoundColumn>
              <asp:TemplateColumn HeaderText="">
               <HeaderStyle Width="250px"></HeaderStyle>
               <ItemTemplate>
                <%# DataBinder.Eval(Container.DataItem, "pro_b_name") %>
               </ItemTemplate>
              </asp:TemplateColumn>             </Columns>
             <PagerStyle HorizontalAlign="Center" ForeColor="White"
BackColor="#336666" Mode="NumericPages"></PagerStyle>
            </asp:DataGrid></TD>
          </TR>
         </TABLE>
        </ItemTemplate>
       </asp:TemplateColumn>
      </Columns>
</asp:DataGrid>

解决方案 »

  1.   

    private void Dg_Data_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    System.Web.UI.Control crtl=e.Item.FindControl("lab");
    if(crtl!=null)
    {
    if(crtl is System.Web.UI.WebControls.LinkButton)
    {
    if(((System.Web.UI.WebControls.LinkButton)crtl).Text=="+")
    {
    if(e.CommandName=="lab")
    {
    DataGrid Dg_Child = (DataGrid) e.Item.FindControl("Dg_Child"); 


    string ID_LC =e.Item.Cells[1].Text.Trim(); 

    Dg_Child.DataSource = YDINFO.Base_Material.GetDateList_RepSum(" and br.ID_LC_Material='"+ID_LC+"'"+this._search+""); 
    Dg_Child.DataBind(); 
    Dg_Child.Visible=true;
    ((System.Web.UI.WebControls.LinkButton)crtl).Text="-";


    }

    }
    else 
    {
    DataGrid Dg_Child = (DataGrid) e.Item.FindControl("Dg_Child"); 
    Dg_Child.Visible=false;
    Dg_Child.Dispose();


    ((System.Web.UI.WebControls.LinkButton)crtl).Text="+";
    }



    }

    }
      

  2.   

    如果没报错,你先检查下你的SQL SERVER语句,如果判断出来本来就是空值呢..
      

  3.   

    你跟踪下ds.Tables["a_cata"].Rows.count看看