如果是自动加列的话这样行不行: select的时候就把需要添加的列放在english那一列之后,添多少都没关系啊表结构 (列名) page control english chinese BIG5 janpan (值 ) index submit submit 提交 BG5提交 @%@#% index tt tt 册 BG册 %&^ 如:原先为: select page,control,english,chiness,big5,janpan from tb where...加列后: select page,control,english,col1,col2,col3...,chiness,big5,janpan from tb where...
datagrid.Columns.AddAt()
运行时自动添加列时
dataGrid.Columns.Count=0
永为0
会报错的!!
BoundColumn bc;
bc = new BoundColumn();
bc.ItemStyle.Width=(Unit)0.20;
bc.HeaderText="合同名称";
bc.ItemStyle.VerticalAlign=VerticalAlign.Middle;
bc.ItemStyle.HorizontalAlign=HorizontalAlign.Left;
bc.DataField="ContractName";
bc.ItemStyle.Wrap = false;
MyDataGrid.Columns.Add(bc);
MyDataGrid.DataBind();
NewColumn.HeaderText="france"; //添加后要显示的列名
NewColumn.DataField="france";//该列对应的字段,该字段必须在表里有,只是原来没显示出来
DataGrid1.Columns.AddAt(3, NewColumn);//在english后添加该列
DataGrid1.DataBind();希望对你有用 :)
select的时候就把需要添加的列放在english那一列之后,添多少都没关系啊表结构
(列名) page control english chinese BIG5 janpan
(值 ) index submit submit 提交 BG5提交 @%@#%
index tt tt 册 BG册 %&^
如:原先为:
select page,control,english,chiness,big5,janpan from tb where...加列后:
select page,control,english,col1,col2,col3...,chiness,big5,janpan from tb where...
public void MyDataGrid_OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item||e.Item.ItemType == ListItemType.AlternatingItem){
string myRole = DataBinder.Eval(e.Item.DataItem, "au_id").ToString();
TableCell tc = new TableCell();
tc.Text = myRole;
e.Item.Cells[3].Controls.Add(tc);
}
if(e.Item.ItemType == ListItemType.Header){
TableCell tc = new TableCell();
Label l = new Label();
l.Text = "原标题";
tc.Text = "新列标题";
e.Item.Cells[2].Controls.Add(l);
e.Item.Cells[2].Controls.Add(tc);
}
做完后在LOAD事件中用ADDAT()添加列,把列添加到指定位置