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