1——
如果这些列在表中无论条件是否成立都是存在的,那么,设置DataGrid绑定到所有的这些列,然后,设置这些列的Visible为你的条件。如:<asp:datagrid ...>
<columns>
<BoundColumn text='<%DataBinder.Eval(Container.DataItem,"id")%>'>
</BoundColumn>
<BoundColumn text='<%DataBinder.Eval(Container.DataItem,"name")%>'>
</BoundColumn>
<BoundColumn text='<%DataBinder.Eval(Container.DataItem,"sex")%>'>
</BoundColumn>
<BoundColumn Visible=条件成立 text='<%DataBinder.Eval(Container.DataItem,"birth")%>'>
</BoundColumn>
<BoundColumn Visible=条件不成立 text='<%DataBinder.Eval(Container.DataItem,"address")%>'>
</BoundColumn>
<BoundColumn Visible=条件不成立 text='<%DataBinder.Eval(Container.DataItem,"telephone")%>'>
</BoundColumn>
</columns>
</asp:datagrid>2——
这个解决方案需要在代码中进行了:BoundColumn bc;
bc=new BoundColumn();
bc.DataTextField="id";
datagrid.columns.add(bc);
bc=new BoundColumn();
bc.DataTextField="name";
datagrid.columns.add(bc);
bc=new BoundColumn();
bc.DataTextField="sex";
datagrid.columns.add(bc);
if(条件成立)
{
bc=new BoundColumn();
bc.DataTextField="birth";
datagrid.columns.add(bc);
}
else
{
bc=new BoundColumn();
bc.DataTextField="address";
datagrid.columns.add(bc);
bc=new BoundColumn();
bc.DataTextField="telephone";
datagrid.columns.add(bc);
}