我要做出来的效果图:
大小编号跟产品数量关联,价格字段就在这里面
我要能生成一张行,列都是可以动态了!比如我增加产品数量时,表格列自动增长一个;增加大小编号时;行自动增加一行;
现在动态生成DataTable可以实现!但我不知要怎么写出来!如果有其它比较好的方法也可以提出来啊!...
假如你帮我解决的;我这号还有一百分到时我想办法也给你;
33 个解决方案
#1
你不是说已经实现动态生成datatable了么。。。
无非就是读取数据
无非就是读取数据
#2
现在动态生成DataTable可以实现!但我不知要怎么写出来!
我是说要怎么动态生成DataTable; 因为我知道动态生成DataTable就可以实现这个功能啊;
不好意思啊我没说明白啊;
我是说要怎么动态生成DataTable; 因为我知道动态生成DataTable就可以实现这个功能啊;
不好意思啊我没说明白啊;
#3
编辑问题:
我要能生成一张行,列都是可以动态了!比如我增加产品数量时,表格列自动增长一个;增加大小编号时;行自动增加一行;
现在我要怎么动态生成DataTable!!如果有其它比较好的方法也可以提出来啊!...
假如你帮我解决的;我这号还有一百分到时我想办法也给你;
我要能生成一张行,列都是可以动态了!比如我增加产品数量时,表格列自动增长一个;增加大小编号时;行自动增加一行;
现在我要怎么动态生成DataTable!!如果有其它比较好的方法也可以提出来啊!...
假如你帮我解决的;我这号还有一百分到时我想办法也给你;
#4
#5
增加一列
DataTable td = new DataTable();
td.Columns.Add("列名");
如有数据
for (int i = 0; i < td.Rows.Count; i++)
{
td.Rows[i]["列名"]="数据";
}
增加一行
int cou=td.Rows.Count;
for(int i=0;i<td.Columns.Count; i++)
td.Rows[cou][i]="数据";
#6
ding
#7
大家快帮帮忙!怎么实现啊!中间那些数据也要填上去啊
#8
sql 实现行转列
http://topic.csdn.net/u/20101108/20/4d7bb842-033b-4546-b71a-69b7bc23e4ec.html
http://topic.csdn.net/u/20101108/20/4d7bb842-033b-4546-b71a-69b7bc23e4ec.html
#9
用临时表 可以么???
#10
这是哥不久前写的
第一列有自增效果
DataTable MyTable = new DataTable();
DataColumn dc = MyTable.Columns.Add("Index", Type.GetType("System.Int32"));
dc.AllowDBNull = false;
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
MyTable.Columns.Add("StartCity", Type.GetType("System.String"));
MyTable.Columns.Add("EndCity", Type.GetType("System.String"));
MyTable.Columns.Add("MinCost", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine1", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine2", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine3", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine4", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine5", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine6", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine7", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine8", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine9", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine10", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine11", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine12", Type.GetType("System.String"));
MyTable.Columns.Add("Memo", Type.GetType("System.String"));
Session["tableAirItemPriceMain"] = MyTable;
GVAirItemPriceMain.DataSource = MyTable;
GVAirItemPriceMain.DataBind();
第一列有自增效果
DataTable MyTable = new DataTable();
DataColumn dc = MyTable.Columns.Add("Index", Type.GetType("System.Int32"));
dc.AllowDBNull = false;
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
MyTable.Columns.Add("StartCity", Type.GetType("System.String"));
MyTable.Columns.Add("EndCity", Type.GetType("System.String"));
MyTable.Columns.Add("MinCost", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine1", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine2", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine3", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine4", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine5", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine6", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine7", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine8", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine9", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine10", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine11", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine12", Type.GetType("System.String"));
MyTable.Columns.Add("Memo", Type.GetType("System.String"));
Session["tableAirItemPriceMain"] = MyTable;
GVAirItemPriceMain.DataSource = MyTable;
GVAirItemPriceMain.DataBind();
#11
#12
这个就如动态统计表一样,先做列表头,再做行表头,最后,利用行和列去查询就是了
#13
dataTable 添加列再
DataRow dr=Dt.NewRow();
dr[""]="";
....
dt.rows.Add(dr);
DataRow dr=Dt.NewRow();
dr[""]="";
....
dt.rows.Add(dr);
#14
我在线等呢大家都来看看啊!
#15
这样可以实现
protected void Page_Load(object sender, EventArgs e)
{
//读取出表T_PhotoNum表中记录到表 tbPhotoNum
//读取出表T_Paintsize数据到表 tbPaintSize
//读取出表T_Photo_Size数据到表 tbPhotoSize
//传参 tbPhotoNum.rows.count 动态生成临时表
DataTable tb = this.GetTb(5);
DataRow tr;
//先生成首行,列名
tr = tb.NewRow();
tr["PhotoSize"] = "Size";
for (int k = 0; k < tbPhotoNum.Rows.count; k++)
{
int p = k + 1;
tr["Col" + p.ToString()] = tbPhotoNum.Rows[k]["PhotoNum"].tostring();
}
tr = tb.Rows.Add(tr);
//下面是绑定数据
for (int i = 0; i < tbPaintSize.rows.count; i++)//外循环Paintsize
{
tr = tb.NewRow();
tr["PhotoSize"] = tbPaintSize.rows[i]["PaintSize"].tostring();
for (int j = 0; j < tbPhotoNum.Rows.count; j++)//内循环PhotoNum
{
int p = j + 1;
DataRow [] findR=tbPhotoSize.select("SizeID="+Convert.ToInt32( tbPaintSize.rows[i]["Id"].tostring())
+" and Photoid="+Convert.ToInt32( tbPhotoNum.rows[i]["Id"].tostring()));
if (findR.Length > 0)
{
tr["Col" + p.ToString()] = findR[0]["PhotoPrice"].ToString();
}
else
{
tr["Col" + p.ToString()] = "";
}
tb.Rows.Add(tr);
}
}
//将tb值绑定到gridview
this.GridView1.DataSource = tb;
this.GridView1.DataBind();
this.GridView1.HeaderRow.Visible = false;//标题行生成,原来遍体行要隐藏
}
private DataTable GetTb(int N)
{
DataTable tb = new DataTable();
DataColumn col;
col = new DataColumn();
col.DataType = System.Type.GetType("System.String");
col.ColumnName = "PhotoSize";
tb.Columns.Add(col);
for(int i=1;i<=N;i++)
{
col = new DataColumn();
col.DataType = System.Type.GetType("System.String");
col.ColumnName = "COL" + i.ToString();
tb.Columns.Add(col);
}
return tb;
}
#16
上面 DataTable tb = this.GetTb(5);
这里应该是这样
DataTable tb = this.GetTb(tbPhotoNum.rows.count );
这里应该是这样
DataTable tb = this.GetTb(tbPhotoNum.rows.count );
#17
#18
又发现点错误
绑定数据的tb.Rows.Add(tr);应移除内循环,因为只有绑定了一行值之后再填入表
改成如下
绑定数据的tb.Rows.Add(tr);应移除内循环,因为只有绑定了一行值之后再填入表
改成如下
//下面是绑定数据
for (int i = 0; i < tbPaintSize.rows.count; i++)//外循环Paintsize
{
tr = tb.NewRow();
tr["PhotoSize"] = tbPaintSize.rows[i]["PaintSize"].tostring();
for (int j = 0; j < tbPhotoNum.Rows.count; j++)//内循环PhotoNum
{
int p = j + 1;
DataRow [] findR=tbPhotoSize.select("SizeID="+Convert.ToInt32( tbPaintSize.rows[i]["Id"].tostring())
+" and Photoid="+Convert.ToInt32( tbPhotoNum.rows[i]["Id"].tostring()));
if (findR.Length > 0)
{
tr["Col" + p.ToString()] = findR[0]["PhotoPrice"].ToString();
}
else
{
tr["Col" + p.ToString()] = "";
}
}
tb.Rows.Add(tr);//绑定了一行值之后再填入表
}
#19
用sql语句进行行列转换,应该能实现
#20
使用数据库数据类型 xml,这种数据类型较灵活,不需要动态字段
#21
用 Repeater 实现。
#22
<asp:Repeater>
<th>绑定列</th>
</asp:Repeater>
<asp:Repeater>
Size(行)
</asp:Repeater>
<th>绑定列</th>
</asp:Repeater>
<asp:Repeater>
Size(行)
</asp:Repeater>
#23
我觉得直接在代码中拼凑datatable更容易些,我们有些统计表都是这么实现的。。。
先生成一个datatable里面存放的是列名,从T_photoNum中取值,再生成一个表里面存放的是行名,在T_Paintsize中取值,然后把列名的表转成列,最后利用行和列为条件在表T_photo_size中取值显示就可以了。。。
先生成一个datatable里面存放的是列名,从T_photoNum中取值,再生成一个表里面存放的是行名,在T_Paintsize中取值,然后把列名的表转成列,最后利用行和列为条件在表T_photo_size中取值显示就可以了。。。
#24
DataTable Columns Row
#25
高手们快来吧
#26
这个可以 类似的我也做过
#27
静等高手啊
#28
还是不死心啊!等等高手的出现啊
#29
没有试过用sql语句吗?
#30
不好意思 我先问你个问题,
你的行是根据产品编号表来的,那这样的话 通过大小编号跟产品数量关联表 得到关系后
每个产品编号 对应的数量 是否都一样呢?
举例一下:如第一行 对应的产品数量是10
第2行 对应的产品量是15 那你这个动态表要多难看的。。1行有11列 2行16列。
如果你的产品数量是固定的 所有编号的都相同 那就很好拼sql了
否则得话 最笨的办法就是存储过程内用循环做
最好不要页面去操作内存的table 效率低不说 赋值的话不方便
你的行是根据产品编号表来的,那这样的话 通过大小编号跟产品数量关联表 得到关系后
每个产品编号 对应的数量 是否都一样呢?
举例一下:如第一行 对应的产品数量是10
第2行 对应的产品量是15 那你这个动态表要多难看的。。1行有11列 2行16列。
如果你的产品数量是固定的 所有编号的都相同 那就很好拼sql了
否则得话 最笨的办法就是存储过程内用循环做
最好不要页面去操作内存的table 效率低不说 赋值的话不方便
#31
而且我看你这个界面很别扭,列根据产品数量生成,即数字的数量为列数。
这样的话 你关系表获得价格的时候所有动态列的值都相同 这样一个界面很难理解为什么这么设计,
如果是单纯的做展示的话 你可以放一个隐藏层去做 当鼠标移上去,可以根据在当前位置 把它的明细显示出来,而不用动态列去做,如果你这个数量上百的话 页面怎么显示呢?
希望楼主解答下吧。看看能不能一起想个办法解决。
这样的话 你关系表获得价格的时候所有动态列的值都相同 这样一个界面很难理解为什么这么设计,
如果是单纯的做展示的话 你可以放一个隐藏层去做 当鼠标移上去,可以根据在当前位置 把它的明细显示出来,而不用动态列去做,如果你这个数量上百的话 页面怎么显示呢?
希望楼主解答下吧。看看能不能一起想个办法解决。
#32
单纯实现动态行列的话 只要你列数固定的话好做 给你个列子
例如你的表内产品数量为10
拼sql:
1.查询产品数量表得到10并赋给一个变量
2.定义一个字符串:string sSQl="select 产品编号 ";
for(int i=1;i<=产品数量变量;i++)
{
sSQL +=",产品价格 as "+i+"Figures ";
}
sSQL +=" from 大小编号表 left join 关联表 on 关联表.编号表ID=大小编号表.ID ";
执行sql
获得table;
例如你的表内产品数量为10
拼sql:
1.查询产品数量表得到10并赋给一个变量
2.定义一个字符串:string sSQl="select 产品编号 ";
for(int i=1;i<=产品数量变量;i++)
{
sSQL +=",产品价格 as "+i+"Figures ";
}
sSQL +=" from 大小编号表 left join 关联表 on 关联表.编号表ID=大小编号表.ID ";
执行sql
获得table;
#33
#1
你不是说已经实现动态生成datatable了么。。。
无非就是读取数据
无非就是读取数据
#2
现在动态生成DataTable可以实现!但我不知要怎么写出来!
我是说要怎么动态生成DataTable; 因为我知道动态生成DataTable就可以实现这个功能啊;
不好意思啊我没说明白啊;
我是说要怎么动态生成DataTable; 因为我知道动态生成DataTable就可以实现这个功能啊;
不好意思啊我没说明白啊;
#3
编辑问题:
我要能生成一张行,列都是可以动态了!比如我增加产品数量时,表格列自动增长一个;增加大小编号时;行自动增加一行;
现在我要怎么动态生成DataTable!!如果有其它比较好的方法也可以提出来啊!...
假如你帮我解决的;我这号还有一百分到时我想办法也给你;
我要能生成一张行,列都是可以动态了!比如我增加产品数量时,表格列自动增长一个;增加大小编号时;行自动增加一行;
现在我要怎么动态生成DataTable!!如果有其它比较好的方法也可以提出来啊!...
假如你帮我解决的;我这号还有一百分到时我想办法也给你;
#4
#5
增加一列
DataTable td = new DataTable();
td.Columns.Add("列名");
如有数据
for (int i = 0; i < td.Rows.Count; i++)
{
td.Rows[i]["列名"]="数据";
}
增加一行
int cou=td.Rows.Count;
for(int i=0;i<td.Columns.Count; i++)
td.Rows[cou][i]="数据";
#6
ding
#7
大家快帮帮忙!怎么实现啊!中间那些数据也要填上去啊
#8
sql 实现行转列
http://topic.csdn.net/u/20101108/20/4d7bb842-033b-4546-b71a-69b7bc23e4ec.html
http://topic.csdn.net/u/20101108/20/4d7bb842-033b-4546-b71a-69b7bc23e4ec.html
#9
用临时表 可以么???
#10
这是哥不久前写的
第一列有自增效果
DataTable MyTable = new DataTable();
DataColumn dc = MyTable.Columns.Add("Index", Type.GetType("System.Int32"));
dc.AllowDBNull = false;
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
MyTable.Columns.Add("StartCity", Type.GetType("System.String"));
MyTable.Columns.Add("EndCity", Type.GetType("System.String"));
MyTable.Columns.Add("MinCost", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine1", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine2", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine3", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine4", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine5", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine6", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine7", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine8", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine9", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine10", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine11", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine12", Type.GetType("System.String"));
MyTable.Columns.Add("Memo", Type.GetType("System.String"));
Session["tableAirItemPriceMain"] = MyTable;
GVAirItemPriceMain.DataSource = MyTable;
GVAirItemPriceMain.DataBind();
第一列有自增效果
DataTable MyTable = new DataTable();
DataColumn dc = MyTable.Columns.Add("Index", Type.GetType("System.Int32"));
dc.AllowDBNull = false;
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
MyTable.Columns.Add("StartCity", Type.GetType("System.String"));
MyTable.Columns.Add("EndCity", Type.GetType("System.String"));
MyTable.Columns.Add("MinCost", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine1", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine2", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine3", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine4", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine5", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine6", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine7", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine8", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine9", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine10", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine11", Type.GetType("System.String"));
MyTable.Columns.Add("DtdDeadLine12", Type.GetType("System.String"));
MyTable.Columns.Add("Memo", Type.GetType("System.String"));
Session["tableAirItemPriceMain"] = MyTable;
GVAirItemPriceMain.DataSource = MyTable;
GVAirItemPriceMain.DataBind();
#11
#12
这个就如动态统计表一样,先做列表头,再做行表头,最后,利用行和列去查询就是了
#13
dataTable 添加列再
DataRow dr=Dt.NewRow();
dr[""]="";
....
dt.rows.Add(dr);
DataRow dr=Dt.NewRow();
dr[""]="";
....
dt.rows.Add(dr);
#14
我在线等呢大家都来看看啊!
#15
这样可以实现
protected void Page_Load(object sender, EventArgs e)
{
//读取出表T_PhotoNum表中记录到表 tbPhotoNum
//读取出表T_Paintsize数据到表 tbPaintSize
//读取出表T_Photo_Size数据到表 tbPhotoSize
//传参 tbPhotoNum.rows.count 动态生成临时表
DataTable tb = this.GetTb(5);
DataRow tr;
//先生成首行,列名
tr = tb.NewRow();
tr["PhotoSize"] = "Size";
for (int k = 0; k < tbPhotoNum.Rows.count; k++)
{
int p = k + 1;
tr["Col" + p.ToString()] = tbPhotoNum.Rows[k]["PhotoNum"].tostring();
}
tr = tb.Rows.Add(tr);
//下面是绑定数据
for (int i = 0; i < tbPaintSize.rows.count; i++)//外循环Paintsize
{
tr = tb.NewRow();
tr["PhotoSize"] = tbPaintSize.rows[i]["PaintSize"].tostring();
for (int j = 0; j < tbPhotoNum.Rows.count; j++)//内循环PhotoNum
{
int p = j + 1;
DataRow [] findR=tbPhotoSize.select("SizeID="+Convert.ToInt32( tbPaintSize.rows[i]["Id"].tostring())
+" and Photoid="+Convert.ToInt32( tbPhotoNum.rows[i]["Id"].tostring()));
if (findR.Length > 0)
{
tr["Col" + p.ToString()] = findR[0]["PhotoPrice"].ToString();
}
else
{
tr["Col" + p.ToString()] = "";
}
tb.Rows.Add(tr);
}
}
//将tb值绑定到gridview
this.GridView1.DataSource = tb;
this.GridView1.DataBind();
this.GridView1.HeaderRow.Visible = false;//标题行生成,原来遍体行要隐藏
}
private DataTable GetTb(int N)
{
DataTable tb = new DataTable();
DataColumn col;
col = new DataColumn();
col.DataType = System.Type.GetType("System.String");
col.ColumnName = "PhotoSize";
tb.Columns.Add(col);
for(int i=1;i<=N;i++)
{
col = new DataColumn();
col.DataType = System.Type.GetType("System.String");
col.ColumnName = "COL" + i.ToString();
tb.Columns.Add(col);
}
return tb;
}
#16
上面 DataTable tb = this.GetTb(5);
这里应该是这样
DataTable tb = this.GetTb(tbPhotoNum.rows.count );
这里应该是这样
DataTable tb = this.GetTb(tbPhotoNum.rows.count );
#17
#18
又发现点错误
绑定数据的tb.Rows.Add(tr);应移除内循环,因为只有绑定了一行值之后再填入表
改成如下
绑定数据的tb.Rows.Add(tr);应移除内循环,因为只有绑定了一行值之后再填入表
改成如下
//下面是绑定数据
for (int i = 0; i < tbPaintSize.rows.count; i++)//外循环Paintsize
{
tr = tb.NewRow();
tr["PhotoSize"] = tbPaintSize.rows[i]["PaintSize"].tostring();
for (int j = 0; j < tbPhotoNum.Rows.count; j++)//内循环PhotoNum
{
int p = j + 1;
DataRow [] findR=tbPhotoSize.select("SizeID="+Convert.ToInt32( tbPaintSize.rows[i]["Id"].tostring())
+" and Photoid="+Convert.ToInt32( tbPhotoNum.rows[i]["Id"].tostring()));
if (findR.Length > 0)
{
tr["Col" + p.ToString()] = findR[0]["PhotoPrice"].ToString();
}
else
{
tr["Col" + p.ToString()] = "";
}
}
tb.Rows.Add(tr);//绑定了一行值之后再填入表
}
#19
用sql语句进行行列转换,应该能实现
#20
使用数据库数据类型 xml,这种数据类型较灵活,不需要动态字段
#21
用 Repeater 实现。
#22
<asp:Repeater>
<th>绑定列</th>
</asp:Repeater>
<asp:Repeater>
Size(行)
</asp:Repeater>
<th>绑定列</th>
</asp:Repeater>
<asp:Repeater>
Size(行)
</asp:Repeater>
#23
我觉得直接在代码中拼凑datatable更容易些,我们有些统计表都是这么实现的。。。
先生成一个datatable里面存放的是列名,从T_photoNum中取值,再生成一个表里面存放的是行名,在T_Paintsize中取值,然后把列名的表转成列,最后利用行和列为条件在表T_photo_size中取值显示就可以了。。。
先生成一个datatable里面存放的是列名,从T_photoNum中取值,再生成一个表里面存放的是行名,在T_Paintsize中取值,然后把列名的表转成列,最后利用行和列为条件在表T_photo_size中取值显示就可以了。。。
#24
DataTable Columns Row
#25
高手们快来吧
#26
这个可以 类似的我也做过
#27
静等高手啊
#28
还是不死心啊!等等高手的出现啊
#29
没有试过用sql语句吗?
#30
不好意思 我先问你个问题,
你的行是根据产品编号表来的,那这样的话 通过大小编号跟产品数量关联表 得到关系后
每个产品编号 对应的数量 是否都一样呢?
举例一下:如第一行 对应的产品数量是10
第2行 对应的产品量是15 那你这个动态表要多难看的。。1行有11列 2行16列。
如果你的产品数量是固定的 所有编号的都相同 那就很好拼sql了
否则得话 最笨的办法就是存储过程内用循环做
最好不要页面去操作内存的table 效率低不说 赋值的话不方便
你的行是根据产品编号表来的,那这样的话 通过大小编号跟产品数量关联表 得到关系后
每个产品编号 对应的数量 是否都一样呢?
举例一下:如第一行 对应的产品数量是10
第2行 对应的产品量是15 那你这个动态表要多难看的。。1行有11列 2行16列。
如果你的产品数量是固定的 所有编号的都相同 那就很好拼sql了
否则得话 最笨的办法就是存储过程内用循环做
最好不要页面去操作内存的table 效率低不说 赋值的话不方便
#31
而且我看你这个界面很别扭,列根据产品数量生成,即数字的数量为列数。
这样的话 你关系表获得价格的时候所有动态列的值都相同 这样一个界面很难理解为什么这么设计,
如果是单纯的做展示的话 你可以放一个隐藏层去做 当鼠标移上去,可以根据在当前位置 把它的明细显示出来,而不用动态列去做,如果你这个数量上百的话 页面怎么显示呢?
希望楼主解答下吧。看看能不能一起想个办法解决。
这样的话 你关系表获得价格的时候所有动态列的值都相同 这样一个界面很难理解为什么这么设计,
如果是单纯的做展示的话 你可以放一个隐藏层去做 当鼠标移上去,可以根据在当前位置 把它的明细显示出来,而不用动态列去做,如果你这个数量上百的话 页面怎么显示呢?
希望楼主解答下吧。看看能不能一起想个办法解决。
#32
单纯实现动态行列的话 只要你列数固定的话好做 给你个列子
例如你的表内产品数量为10
拼sql:
1.查询产品数量表得到10并赋给一个变量
2.定义一个字符串:string sSQl="select 产品编号 ";
for(int i=1;i<=产品数量变量;i++)
{
sSQL +=",产品价格 as "+i+"Figures ";
}
sSQL +=" from 大小编号表 left join 关联表 on 关联表.编号表ID=大小编号表.ID ";
执行sql
获得table;
例如你的表内产品数量为10
拼sql:
1.查询产品数量表得到10并赋给一个变量
2.定义一个字符串:string sSQl="select 产品编号 ";
for(int i=1;i<=产品数量变量;i++)
{
sSQL +=",产品价格 as "+i+"Figures ";
}
sSQL +=" from 大小编号表 left join 关联表 on 关联表.编号表ID=大小编号表.ID ";
执行sql
获得table;