当前位置:编程学习 > C#/ASP.NET >>

asp.net 疑问??? 高手请进 帮帮忙

asp.net问题:

数据库显示:
补货号       存货编码    调拨单编码
8811000001   01683387    8811000005 
8811000002   01683388    8811000006
。。。。。   。。。。。  。。。。。。
。。。。。   。。。。。  。。。。。。

前台希望如下显示:
补货号   8811000001   8811000002    。。。。。  。。。。。
存货编码 01683387     01683388      。。。。。  。。。。。
调拨编码 8811000005   8811000006    。。。。。  。。。。。


备注:数据库中每增加一行,则前台增加一列显示

请问高手针对以上需求,在asp.net中如何解决此问题,希望有代码说明

--------------------编程问答-------------------- 顶

--------------------编程问答-------------------- 用datagrid和datalist嵌套就轻松可以实现 --------------------编程问答--------------------
引用 2 楼 zcxverygood123456 的回复:
用datagrid和datalist嵌套就轻松可以实现

首先想到的也是用这个。
也可以把数据在检索的时候翻转,变成前台的Table结构。
然后直接绑定就OK啦。sql版,以前见过这个问题,
lz自己找吧 --------------------编程问答-------------------- zcxverygood123456

能简单写个例子 --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 楼主提供两个方法:
(1)你可以把通过select * from 表 然后把这些提取出来的数据放到DataTable dt中 然后
foreach(DataRow row in dt.Rows )
{
    this.Label.Text+=row[0].ToString()+"   ";
this.Labe2.Text+=row[1].ToString()+"   ";
this.Labe3.Text+=row[2].ToString()+"   ";


}

(2) 分别写3个select语句 select 补货号 from 表   select 存货编码 from 表     select  调拨单编码 from 表
然后分别进行操作

关于你的备注中的问题  数据库中每增加一行,则前台增加一列显示    可以用Ajax来实现,因为上面的两个方法当数据量大的时候,就有点麻烦了。用AJAX来实现的话目的就是减少数据的传输量


--------------------编程问答-------------------- 顶  --------------------编程问答-------------------- 用DataTable 行转列可以解决 --------------------编程问答-------------------- 顶,各位大侠帮帮忙,看看有没有好的解决方法 --------------------编程问答--------------------
<asp:datagrid id="DG_Group" width="160px" GridLines="None" AutoGenerateColumns="False" CellPadding="0"
ShowHeader="False" runat="server">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "补货号字段,当然要用另外的表要与主表

有相对应得联系") %>
<asp:datalist id="DG_6D" runat="server" CellPadding="0" 

ShowHeader="False" ShowFooter="False"
RepeatDirection="Horizontal" RepeatColumns="10" Width="140" 

AlternatingItemStyle-HorizontalAlign="Left"
ItemStyle-HorizontalAlign="Right">
<ITEMTEMPLATE>
<%# DataBinder.Eval(Container.DataItem, "8811000001  

8811000002    。。。。。  。。。。。 字段") %>
</ITEMTEMPLATE>
</asp:datalist>
</div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False" HeaderText="Group_ID">
<ItemTemplate>
<asp:label id=Lb2 runat="server" Text='<%# DataBinder.Eval

(Container.DataItem, "lx_id") %>'>
</asp:label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False" HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
</asp:datagrid>


private void Page_Load(object sender, System.EventArgs e)
{
lx1();
}
private void lx1()
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connectionString"]);
SqlDataAdapter da=new SqlDataAdapter("select * from chanpin_lx where lx_s_id='0' ORDER BY px ASC",conn);
dt_Group=new DataTable("Equ_Group");
da.Fill(dt_Group);
DG_Group.DataSource=dt_Group.DefaultView;
DG_Group.DataBind();
}
private void DG_Group_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType!=ListItemType.Header && e.Item.ItemType!=ListItemType.Footer)
{
//
DataList DG_6D=(DataList)e.Item.FindControl("DG_6D");
Label lb=(Label)e.Item.Cells[1].FindControl("Lb2");
string gr_id=lb.Text;
//
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connectionString"]);
SqlDataAdapter da=new SqlDataAdapter("select top 8 * from chanpin_lx where lx_s_id='"+gr_id+"' ORDER BY px ASC",conn);
dt_6D=new DataTable("Group6D");
da.Fill(dt_6D);
DG_6D.DataSource=dt_6D.DefaultView;
DG_6D.DataBind();
}
}


--------------------编程问答-------------------- 顶,各位大哥帮帮忙 
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,