asp.net 疑问??? 高手请进 帮帮忙
asp.net问题:数据库显示:
补货号 存货编码 调拨单编码
8811000001 01683387 8811000005
8811000002 01683388 8811000006
。。。。。 。。。。。 。。。。。。
。。。。。 。。。。。 。。。。。。
前台希望如下显示:
补货号 8811000001 8811000002 。。。。。 。。。。。
存货编码 01683387 01683388 。。。。。 。。。。。
调拨编码 8811000005 8811000006 。。。。。 。。。。。
备注:数据库中每增加一行,则前台增加一列显示
请问高手针对以上需求,在asp.net中如何解决此问题,希望有代码说明
--------------------编程问答-------------------- 顶
--------------------编程问答-------------------- 用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