展示DataSet的数据在一个页面上 现在有一个系统用户,包括用户基本信息,用户求学经历,用户培训经历,用户出国经历,用户奖励经历,用户家庭关系等,分别保存在不同的表中,用户所对应的求学经历等都是一对多的关系。当查询某个用户的时候将所有他的信息保存在DataSet里面保存,现在要在详细页面里面显示该用户的信息(不能使用小脚本)。我要该怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就用select语句把这些信息查出来,填充到DataSet中啊!! 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> 查询多个DataTable扔一个DataSet里面返回出来。就行了 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); 我现在要展示的详细信息,用DataList可以吗? DataList,gridview,repeater都能展示,但光是展示的话用repeater好些,速度快 DataList,gridview,repeater这个的数据源可以使用dataSet吗? repeater1.DataSource = dataset1.Tables[0].DefaultView; 后台把用户的信息, 能一起读出来的, 全用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> 那你的意思是我要重构dataTable吗? session传的值为什么会变 各位ajax返回值的问题 什么工具可以做用压力测试? 散分,并求一正则表达式 哪位前辈帮我转换一个函数! asp.net如何获取网卡的MAC地址? FCK上传图片问题 判断日期 今天是否在这星期1 11:00 到这星期日晚上23:59之间,怎么写 [收购]:Repeater、DataList、GridView控件添、删、改以及分页实例! 一个有挑战性的问题, 查了很多资料, 都未找到完美的解决办法? 跟者有分... 为什么c#总是对转义报错 用过thickbox的进来看看,为啥我loadingAnimation.gif显示不出?
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>
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);
对于实在太复杂, 不好一起读出来的表, 可以单独读出内容到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>