日期:2014-05-18  浏览次数:20389 次

如何gridview中动态创建表头?
一个页面中只有一个gridview,现需要根据不同按钮选择不同的数据表,将数据显示在gridview中,有什么方法可以动态创建表头,和取得想要字段的值吗?

------解决方案--------------------
<HeaderTemplate>
<%=headico%>
</HeaderTemplate>

<ItemTemplate>
<%# ((DataRowView)Container.DataItem)[ "pic "] %>
</ItemTemplate>
这样绑定不可以吗
------解决方案--------------------
不同表绑定字段也会不一样的……

最好不要这样用

所有的都是动态的,不如直接自己生成HTML代码好了

GV出来也是个TABLE而已
------解决方案--------------------
需要根据不同按钮选择不同的数据表

全部显示的话还要什么动态显示?直接在按纽事件里重新绑定数据源不就完了?
------解决方案--------------------
这就要递归查询表头的内容,你可以从网上找找RealWord 的GridView列子,那就是个动态创建表头的控件,很不错
------解决方案--------------------
select username as 用户名 from 表名
这是动态显示girdview每一列列名的sql语句
------解决方案--------------------
void ColSpan()//合并列单元格
{
for(int i=0;i <prevDg.Items.Count;i++)
{
if (prevDg.Items[i].Cells[3].Text.Trim()== "0 " && prevDg.Items[i].Cells[4].Text.Trim()== "0 " )
{
prevDg.Items[i].Cells[2].ColumnSpan=3;
prevDg.Items[i].Cells[3].Visible=false;
prevDg.Items[i].Cells[4].Visible=false;
}
}
}
void RowSpan()//合并行单元格
{
int j;
int n;
for(int i=0;i <prevDg.Items.Count;i++)
{
n=1;
for (j=i+1;j <prevDg.Items.Count;j++)
{
if(prevDg.Items[i].Cells[0].Text.Trim()==prevDg.Items[j].Cells[0].Text.Trim() && prevDg.Items[i].Cells[7].Text.Trim()==prevDg.Items[j].Cells[7].Text.Trim())
{
n += 1;
prevDg.Items[i].Cells[0].RowSpan=n;
prevDg.Items[j].Cells[0].Visible=false;
}
else break;
}
i=j-1;
}
}
------解决方案--------------------
老孟有个例子,去他blog上看看
------解决方案--------------------
可以动态生成gridview,根据你的结果集动态增加列