现在有一个系统用户,包括用户基本信息,用户求学经历,用户培训经历,用户出国经历,用户奖励经历,用户家庭关系等,分别保存在不同的表中,用户所对应的求学经历等都是一对多的关系。当查询某个用户的时候将所有他的信息保存在DataSet里面保存,现在要在详细页面里面显示该用户的信息(不能使用小脚本)。我要该怎么实现?

解决方案 »

  1.   

    那就用select语句把这些信息查出来,填充到DataSet中啊!!
      

  2.   


    string sqlStr="select * from ViewTable(视图) where usersID=用户主键";DataSet ds =new DataSet();
    ....
    DataList1.DataSourse=ds;
    ....<asp:Label ID="Label3" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "用户姓名")%>' ></asp:Label>
      

  3.   

    查询多个DataTable扔一个DataSet里面返回出来。就行了
      

  4.   

    DataSet.Relations.Add("关联名称", 父关联主键字段, 子关联外来键字段) DataTable dt1 = new DataTable(); 
    DataTable dt2 = new DataTable(); ds.Tables.Add(dt1); 
    ds.Tables.Add(dt2); 
    DataRelation dsdr = new DataRelation("Position", ds.Tables[0].Columns["id"], ds.Tables[1].Columns["id"]); 
    ds.Relations.Add(dsdr); 
      

  5.   

    我现在要展示的详细信息,用DataList可以吗?
      

  6.   

    DataList,gridview,repeater都能展示,但光是展示的话用repeater好些,速度快
      

  7.   

    DataList,gridview,repeater这个的数据源可以使用dataSet吗?
      

  8.   

    repeater1.DataSource = dataset1.Tables[0].DefaultView;
      

  9.   

    后台把用户的信息, 能一起读出来的, 全用SQL给读到一个DataSet里, 如命名为dataSet1, 
    对于实在太复杂, 不好一起读出来的表, 可以单独读出内容到ds2, 然后用把ds1里的DataTable进行扩展, 自己加字段. 方法如下:
    DataTable dataTable1 = dataSet1.Tables[0];
    dataTable1.Columns.Add(new DataColumn("AdditionalColumn1", typeof(String)));
    dataTable1.Columns.Add(new DataColumn("AdditionalColumn2", typeof(String)));
    foreach(datarow row in dataTable1.rows)
    {
       row[0]["AdditionalColumn1"] = "testvalue1";
       row[0]["AdditionalColumn2"] = "testvalue2";
    }
    这样dataTable1里应当能够包含你所需要的所有内容.下面再把这些内容绑定到Repeater上, 
    repeater1.DataSource = dataTable1.DefaultView;在前台显示. 你的内容可能比较多, 需要用复杂点的结构来显示, 一行估计是放不下的.所以你可以用ItemTemplate来自己写个重复N次的模板, 下面是个例子, 其中的ItemTemplate里你可以打个表格, 每个单元格里该放什么就放什么, 用<%#Eval("CategoryName").ToString() %>这样的形式来显示DataSet里的字段值, 用<%#GetLinkClassName(Eval("CategoryID").ToString()) %>来对某个字段的值进行进一步的处理, 其中GetLinkClassName是个函数, 在.cs文件里写义一下就行了.例:
    protected string GetLinkClassName(string categoryID)
            {
                if (categoryID == SelectedCategoryID)
                    return "Selected";
                else
                    return string.Empty;
            }模板:
    <asp:Repeater runat="server" ID="repeater1">
        <ItemTemplate>
            <img src="/shop/style/images/arrow1.jpg" alt="" /> <a class='<%#GetLinkClassName(Eval("CategoryID").ToString()) %>' href='<%#Inchol.Modules.Shop.ShopControl.GetCategoryURL(Eval("CategoryNumber").ToString(), Eval("CategoryName").ToString())%>'><%#Eval("CategoryName") %></a>
        </ItemTemplate>
    </asp:Repeater>
      

  10.   

    那你的意思是我要重构dataTable吗?