• GridView动态添加列


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DynamicGridView.aspx.cs" Inherits="DynamicGridView" %>
    
    <!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>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns ="false">
         
            </asp:GridView>
            <asp:ListBox ID="ListBox1" runat="server" Height="91px" Width="69px">
                <asp:ListItem>1</asp:ListItem>
                <asp:ListItem>2</asp:ListItem>
                <asp:ListItem>3</asp:ListItem>
                <asp:ListItem>4</asp:ListItem>
            </asp:ListBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>
        </form>
    </body>
    </html>
    
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    public partial class DynamicGridView : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session["num"] = getNumber();
            }
    
            if (ListBox1.SelectedValue !="")
            {
    
                BoundField bf=null, bf1=null, bf2=null, bf3=null, bf4=null;
    
                GridView1.Columns.Clear();
              
                switch (Int16.Parse (ListBox1.SelectedValue))
                {
                    case 1:
                        bf = new BoundField();
                        bf.DataField = "job_id";
                        bf.HeaderText = "job_id";
                        bf.FooterText = Session["num"].ToString();
                       
                        GridView1.Columns.Add(bf);
                       
                        break;
                    case 2:
                        bf1 = new BoundField();
                        bf1.DataField = "job_id";
                        bf1.HeaderText = "job_id";
                        bf1.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf1);
                        bf2 = new BoundField();
                        bf2.DataField = "job_desc";
                        bf2.HeaderText = "job_desc";
                        bf2.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf2);
                        break;
                    case 3:
                        bf1 = new BoundField();
                        bf1.DataField = "job_id";
                        bf1.HeaderText = "job_id";
                        bf1.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf1);
                        bf2 = new BoundField();
                        bf2.DataField = "job_desc";
                        bf2.HeaderText = "job_desc";
                        bf2.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf2);
                        bf3 = new BoundField();
                        bf3.DataField = "max_lvl";
                        bf3.HeaderText = "max_lvl";
                        bf3.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf3);
                        break;
                    case 4:
                        bf1 = new BoundField();
                        bf1.DataField = "job_id";
                        bf1.HeaderText = "job_id";
                        bf1.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf1);
                        bf2 = new BoundField();
                        bf2.DataField = "job_desc";
                        bf2.HeaderText = "job_desc";
                        bf2.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf2);
                        bf3 = new BoundField();
                        bf3.DataField = "max_lvl";
                        bf3.HeaderText = "max_lvl";
                        bf3.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf3);
                        bf4 = new BoundField();
                        bf4.DataField = "min_lvl";
                        bf4.HeaderText = "min_lvl";
                        bf4.FooterText = Session["num"].ToString();
                        GridView1.Columns.Add(bf4);
                        break;
                }
                BindGridView();
            }
    
        }
        int getNumber()
        {
            string connect = "Data Source=localhost\\sqlexpress;Integrated Security=True;Initial Catalog=pubs";
            System.Data.SqlClient.SqlConnection sqlconnect = new System.Data.SqlClient.SqlConnection(connect);
            string command = "select * from jobs";
            System.Data.SqlClient.SqlCommand sqlcommand = new System.Data.SqlClient.SqlCommand();
            sqlcommand.CommandText = command;
            sqlcommand.Connection = sqlconnect;
    
            System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter();
            da.SelectCommand = sqlcommand;
            DataSet ds = new DataSet();
    
            sqlconnect.Open();
            sqlcommand.ExecuteNonQuery();
            da.Fill(ds);
    
            int num = ds.Tables[0].Rows.Count;
    
            sqlconnect.Close();
            return num;
    
    
        }
        void BindGridView()
        {
            string connect = "Data Source=localhost\\sqlexpress;Integrated Security=True;Initial Catalog=pubs";
            System.Data.SqlClient.SqlConnection sqlconnect = new System.Data.SqlClient.SqlConnection(connect);
            string command = "select * from jobs";
            System.Data.SqlClient.SqlCommand sqlcommand = new System.Data.SqlClient.SqlCommand();
            sqlcommand.CommandText = command;
            sqlcommand.Connection = sqlconnect;
    
            System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter();
            da.SelectCommand = sqlcommand;
            DataSet ds = new DataSet();
    
            sqlconnect.Open();
            sqlcommand.ExecuteNonQuery();
            da.Fill(ds);
    
            int num = ds.Tables[0].Rows.Count;
    
            GridView1.ShowFooter = true;
                 
            GridView1.DataSource = ds;
            GridView1.DataBind();
    
            sqlconnect.Close();
    
        }
       
        protected void Button1_Click(object sender, EventArgs e)
        {
    
        }
    }
    //增加按钮
    grdSubject.AutoGenerateColumns = false;
            grdSubject.ShowHeader = true;
            grdSubject.DataKeyNames = new String[] { "Id" };
            DataControlFieldCollection dcfc = grdSubject.Columns;
            dcfc.Clear();
    ButtonField selectRow = new ButtonField(); selectRow.ButtonType = ButtonType.Button; selectRow.CommandName = "Select"; selectRow.Text = "选择"; selectRow.HeaderText = "A"; dcfc.Add(selectRow); ButtonField delRow = new ButtonField(); delRow.ButtonType = ButtonType.Button; delRow.AccessibleHeaderText = "Delete"; delRow.CommandName = "Delete"; delRow.Text = "删除"; delRow.CausesValidation = true; dcfc.Add(delRow);
    protected void grdSubject_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            //判断是否是DataRow
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                //鼠标经过Row时的效果
                e.Row.Attributes.Add("onmouseover", "e=this.style.backgroundColor; this.style.backgroundColor='linen'");
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=e");
    
                //当开始时间大于现在时间,显示行为蓝色
                if (DateTime.Parse(e.Row.Cells[2].Text) > DateTime.Now)
                {
                    e.Row.BackColor = Color.LightSkyBlue;
                }
                //当结束时间小于现在时间,显示行为灰色
                if (DateTime.Parse(e.Row.Cells[3].Text) < DateTime.Now)
                {
                    e.Row.BackColor = Color.Silver;
                }
    
                //当点击删除按钮时激活提示
                Button btn = (Button)e.Row.Cells[5].Controls[0];
                btn.Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
            }
        }
    
        protected void grdSubject_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
    
        }
    
        protected void grdSubject_RowCommand(object sender, EventArgs e)
        {
            ////单击Grid中按钮时发生throw new Exception("The method or operation is not implemented.");
            //int selIndex = Convert.ToInt32(e.CommandArgument);
            //GridViewRow selectedRow = grdSubject.Rows[selIndex];
    
            //if (e.CommandName == "Select")
            //{
            //    //txtSubjectTitle.Text = selectedRow.Cells[1].Text;
            //    //dateBegin.Value = selectedRow.Cells[2].Text;
            //   // dateEnd.Value = selectedRow.Cells[3].Text;
    
            //}
            //if (e.CommandName == "Delete")
            //{
            //    //Hsf.Touch.Dto.Subject item = new Hsf.Touch.Dto.Subject();
            //    //item.Id = int.Parse(grdSubject.DataKeys[selIndex].Value.ToString());
            //    try
            //    {
            //        //TouchFactory.CreateSubjectManage().Delete(item);
            //        //删除成功,清除输入框内容
            //        //Clear();
            //    }
            //    catch (Exception err)
            //    {
            //        //ShowMessageBox("删除失败 \n" + err.Message);
            //    }
            //}
    
            //ShowGrid();
        }
        protected void grdSubject_RowDeleted(object sender, GridViewDeletedEventArgs e)
        {
    
        }
    
  • 相关阅读:
    ubuntu 1510
    创业者的困境
    创业者的窘境
    (转)Ubuntu 16.04下搭建Web服务器(MySQL+PHP+Apache)
    ESP8266的smartconfig过程(使用esptouch)
    Virtualbox下ubuntu识别USB设备
    红外人体检测
    树莓派跑讯飞语音识别(2麦阵列)
    R16平台中断
    语音识别下的智能家居
  • 原文地址:https://www.cnblogs.com/blackbean/p/2736852.html
Copyright © 2020-2023  润新知