关闭了自动生成列(AutoGenerateColumns="False")
<asp:GridView ID="grid_info" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField >
<ItemTemplate >
<a><%# Eval("ID")%></a>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
//后台代码绑定GridView的方法
public void IntiGrid(DataTable dsGrid)
{
//由于前台有一个模板绑定了ID这个字段所以这里再次绑定前需要把除了第一列以外的列清楚
if (grid_info.Columns.Count > 1)
{
grid_info.Columns.RemoveAt(1);
}
//这里通过后台业务获取到一个数据集合
DataTable dsGrid = GerData();
//采用循环的方式绑定GridView
foreach (DataColumn dc in dsGrid.Columns)
{
//由于前台有一个模板绑定了ID这个字段所以这里需要过滤掉不绑定
if (dc.ColumnName != "ID")
{
BoundField bfCase = new BoundField();
bfCase.DataField = dc.ColumnName;
bfCase.HeaderText = dc.ColumnName;
grid_info.Columns.Add(bfCase);
}
}
}
//现在出现的问题是我页面上有一个按钮触发数据绑定的这个方法,第一绑定数据到GridView没问题!
//但是在点一次后就会出现第一列没有绑定数据的情况
从论坛上看到的,重在思考思路问题,我想他上面那里,从DataTable,应该还在做下字段是否为NULL的算法,否则会出错