Girdview在实际应用过程中,常常根据一定的条件,动态加载列。这个DEMO演示了如何加载列并进行数据绑定。实际应用中,可据此进行变通。HTML: <%...@ Page Language="C#" AutoEventWireup="true" CodeFile="PostBack.aspx.cs" Inherits="PostBack" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>无标题页</title></head><body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns ="false"> <Columns > <asp:TemplateField > <ItemTemplate > <asp:CheckBox ID="chk" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:Button ID="btnGetField" runat="server" Text="GetField" onclick="btnGetField_Click" /><br /> <asp:ListBox ID="list" runat="server" Height ="200px" Width="200px"></asp:ListBox> </div> </form></body></html> CS: public partial class PostBack : System.Web.UI.Page...{ protected void Page_Load(object sender, EventArgs e) ...{ if (!IsPostBack) ...{ CreateView(); SetBind(); } } public void CreateView() ...{ BoundField dc1 = new BoundField(); dc1.DataField = "gwid"; dc1.HeaderText = "钢网编号"; dc1.Visible = true; BoundField dc2 = new BoundField(); dc2.Visible = true; dc2.DataField = "machtype"; dc2.HeaderText = "机器型号"; BoundField dc3 = new BoundField (); dc3.Visible = true; dc3.DataField = "isok"; dc3.HeaderText ="当前状态"; GridView1.Columns.Add(dc1); GridView1.Columns.Add(dc2); GridView1.Columns.Add(dc3); } public void SetBind() ...{ string connstr = ConfigurationManager.ConnectionStrings["ConnStr"].ToString(); using (SqlConnection conn = new SqlConnection(connstr)) ...{ conn.Open(); string sql = "select top 10 * from allinfor"; SqlDataAdapter ada = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); ada.Fill(ds); GridView1.DataSource = ds.Tables[0]; GridView1.DataBind(); } } protected void btnGetField_Click(object sender, EventArgs e) ...{ for(int i=0;i<GridView1.Rows.Count;i++) ...{ CheckBox chk = GridView1.Rows[i].FindControl("chk") as CheckBox; if (chk.Checked == true) ...{ list.Items.Add(GridView1.Rows[i].Cells[2].Text); } } }}