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); } } }}