为什么要放到2个DataGrid里面呢?单个DataGrid也可以显示主从表的啊

解决方案 »

  1.   

    是吗?请问那单个DataGrid怎么解决了?我在CSDN里搜索过了“主从”的帖子,看了半天..
      

  2.   

    DataGrid中的数据是通过DataAdapter来参照的,这一点以原来的ADO有些区别!!但这种结构会更好一点
      

  3.   

    我看了你的贴,有关库引用的问题,你在HTML对应的位置把DataSource='<%# Ctype(Container.DataItem,DataRowView).CreateChildView("MyRelation") %>'>
    改成DataSource='<%#((System.Data.DataRowView)Container.DataItem).CreateChildView("MyRelation") %>'> 看看可不可以
      

  4.   

    汗,终于出来了,谢谢双林朋友了!也谢谢大家!我把源码帖出来:
    Index.aspx部分:
    -----------------------------------
    <%@ Import Namespace="System.Data" %>
    <%@ Page language="c#" Codebehind="Index.aspx.cs" AutoEventWireup="false" Inherits="OurThinkForum.Index" %>
    <HTML>
    <HEAD>
    <title>WebForm1</title>
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">
    <LINK href="site.css" type="text/css" rel="stylesheet">
    </HEAD>
    <body>
    <form id="Form1" method="post" runat="server">
    <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.BC_NAME", "haha{0}") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.BC_ID", "ddd.aspx?BC_ID={0}") %>' ID="Hyperlink1">
    </asp:HyperLink>
    <asp:DataGrid id="DataGrid2" runat="server" AutoGenerateColumns="False" DataSource='<%#((System.Data.DataRowView)Container.DataItem).CreateChildView("MyRelation") %>'>
    <Columns>
    <asp:BoundColumn DataField="BF_ID"></asp:BoundColumn>
    </Columns>
    </asp:DataGrid>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
    </form>
    </body>
    </HTML>
    Index.aspx.cs文件部分:
    -------------------------------------------------
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Configuration;
    namespace OurThinkForum
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class Index : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
    protected System.Web.UI.WebControls.DataGrid DataGrid2;
    // 数据库链接
    private SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);private void Page_Load(object sender, System.EventArgs e)
    {
    myConnection.Open();
    string SqlCmd1 = "Select * From ......";
    string SqlCmd2 = "Select * From ......";
    SqlDataAdapter DataAdapter1 = new SqlDataAdapter(SqlCmd1, myConnection);
    SqlDataAdapter DataAdapter2 = new SqlDataAdapter(SqlCmd2, myConnection);
    DataSet ds = new DataSet();
    DataAdapter1.Fill(ds,"Categorys");
    DataAdapter2.Fill(ds,"Forums");// 创建 Categorys 表和 Forums 表之间的关系.
    ds.Relations.Add("MyRelation",
    ds.Tables["Categorys"].Columns["BC_ID"],
    ds.Tables["Forums"].Columns["BC_ID"]);
    // 绑定Authors到父Repeater
    DataGrid1.DataSource = ds.Tables["Categorys"];
    Page.DataBind();
    myConnection.Close();}
    }
    }几点关键的地方:
    1、提示错误的注意,引用System.Data不是在.cs的类文件中引用,而是在ASPX文件头部用这种方式;
    2、DataGird2不需要在类文件中定义DataSource,在aspx文件中定义即可;
    3、使用Relations.Add()汗,初写C#,天天碰钉子,珍惜这菜鸟级问题的成果,和和!谢谢大家!希望各位大家能帮助初学者,我的MSN是:[email protected]