GridView动态加载列

来源:互联网 发布:mysql 自动增长 不好使 编辑:程序博客网 时间:2024/05/16 18:10

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

        }

    }

}
原创粉丝点击