<%@ 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)
{
}