//那个按钮是在点击某个树节点后自动生成的,但是运行程序后,那个shenPiBtn按钮(有生成动态按钮),但是点击后没有执行事件处理的代码(在最后面的shenPiBtn_Click),比如
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;
using System.Data.SqlClient;public partial class GM : System.Web.UI.Page
{
int row = 0;
GridView gridView1 = new GridView();
ArrayList arrList = new ArrayList();//保存审批项目名称
protected void Page_Load(object sender, EventArgs e)
{
//string userID = Session["员工编号"];
//string userName=Session ["员工姓名"];
if (!IsPostBack)
{
string sql1 = "select 项目名称 from 项目信息 where 完成日期 IS NOT NULL and 开始日期 IS NOT NULL";//历史项目
string sql2 = "select 项目名称 from 项目信息 where 完成日期 IS NULL and 开始日期 IS NOT NULL ";//当前项目
string sql3 = "select 项目名称 from 项目信息 where 完成日期 IS NULL and 开始日期 IS NULL";//计划项目
string sql4 = "select 项目名称 from 项目信息 where 审核通过 IS NULL";//待审项目
string sql5 = "select 项目名称 from 项目信息 where 审核通过 = 1";//审核通过项目
string sql6 = "select 项目名称 from 项目信息 where 审核通过 = 0";//审核未通过项目
string connStr = "Data Source=(local);Initial Catalog=ProjectManagement;Integrated Security=True"; SqlConnection sqlConn = new SqlConnection(connStr);
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlConn; sqlConn.Open();
#region
sqlCmd.CommandText = sql1;
SqlDataReader dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充历史项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("historyP").ChildNodes.Add(newNode); }
dr.Close();
sqlCmd.CommandText = sql2;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充当前项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("currentP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql3;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充计划项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("planP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql4;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充待审项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("daishenP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql5;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充审核通过项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("passP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql6;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充待审项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("noPassP").ChildNodes.Add(newNode); }
dr.Close(); #endregion//填充树 sqlConn.Close();
}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string strProjectName = TreeView1.SelectedNode.Text.Trim ();
gridView1.RowDataBound += new GridViewRowEventHandler(gridView1_RowDataBound);
form1.Controls.Add(gridView1); ;
Response.Write("<b><center>"+strProjectName+"</b></center>"); switch (strProjectName )
{
case "历史项目" :
gridView1.DataSource = SqlDataSource1;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ; case "当前项目":
gridView1.DataSource = SqlDataSource2;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ; case "计划项目":
gridView1.DataSource = SqlDataSource3;
gridView1.DataBind();
row = gridView1.Rows.Count;
break; case "待审项目":
gridView1.DataSource = SqlDataSource4;
gridView1.DataBind();
row = gridView1.Rows.Count;
daishenP();
break ; case "审核通过项目":
gridView1.DataSource = SqlDataSource5;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ;
case "审核未通过项目":
gridView1.DataSource = SqlDataSource6;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ;
default :
break;
}
}
protected void gridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int i; //执行循环,保证每条数据都可以更新
for (i = -1; i < row; i++)//
{
//首先判断是否是数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{
//当鼠标停留时更改背景色
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
//当鼠标移开时还原背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
} } //鼠标停留改变GridView行的颜色 protected void daishenP()
{
for (int i = 0; i < row; i++)
{
Literal lbl1 = new Literal();//换行
lbl1.Text = "<br>";
form1.Controls.Add(lbl1);
string projectName = gridView1.Rows[i].Cells[0].Text;
arrList.Add(projectName); Literal newLbl = new Literal();
newLbl.Text = projectName.PadRight(120, '-');
form1.Controls.Add(newLbl); HtmlInputCheckBox cbx = new HtmlInputCheckBox();
cbx.ID = i.ToString();
form1.Controls.Add(cbx); Label lbl = new Label();
lbl.Text = "要通过审批请打钩!";
form1.Controls.Add(lbl); Literal lbl2 = new Literal();//添加页面分割线
lbl1.Text = "<hr>";
form1.Controls.Add(lbl2);
}
Button shenPiBtn = new Button();
shenPiBtn.ID = "shenPiBtn";
shenPiBtn.Text = "通过审批";
shenPiBtn.Click += new EventHandler(shenPiBtn_Click);
form1.Controls.Add(shenPiBtn);
} protected void shenPiBtn_Click(object sender, EventArgs e)
{
//写在这里的代码都不会执行,就是shenPiBtn.Click事件没有执行
}
}
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;
using System.Data.SqlClient;public partial class GM : System.Web.UI.Page
{
int row = 0;
GridView gridView1 = new GridView();
ArrayList arrList = new ArrayList();//保存审批项目名称
protected void Page_Load(object sender, EventArgs e)
{
//string userID = Session["员工编号"];
//string userName=Session ["员工姓名"];
if (!IsPostBack)
{
string sql1 = "select 项目名称 from 项目信息 where 完成日期 IS NOT NULL and 开始日期 IS NOT NULL";//历史项目
string sql2 = "select 项目名称 from 项目信息 where 完成日期 IS NULL and 开始日期 IS NOT NULL ";//当前项目
string sql3 = "select 项目名称 from 项目信息 where 完成日期 IS NULL and 开始日期 IS NULL";//计划项目
string sql4 = "select 项目名称 from 项目信息 where 审核通过 IS NULL";//待审项目
string sql5 = "select 项目名称 from 项目信息 where 审核通过 = 1";//审核通过项目
string sql6 = "select 项目名称 from 项目信息 where 审核通过 = 0";//审核未通过项目
string connStr = "Data Source=(local);Initial Catalog=ProjectManagement;Integrated Security=True"; SqlConnection sqlConn = new SqlConnection(connStr);
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlConn; sqlConn.Open();
#region
sqlCmd.CommandText = sql1;
SqlDataReader dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充历史项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("historyP").ChildNodes.Add(newNode); }
dr.Close();
sqlCmd.CommandText = sql2;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充当前项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("currentP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql3;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充计划项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("planP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql4;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充待审项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("daishenP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql5;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充审核通过项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("passP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql6;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充待审项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("noPassP").ChildNodes.Add(newNode); }
dr.Close(); #endregion//填充树 sqlConn.Close();
}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
string strProjectName = TreeView1.SelectedNode.Text.Trim ();
gridView1.RowDataBound += new GridViewRowEventHandler(gridView1_RowDataBound);
form1.Controls.Add(gridView1); ;
Response.Write("<b><center>"+strProjectName+"</b></center>"); switch (strProjectName )
{
case "历史项目" :
gridView1.DataSource = SqlDataSource1;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ; case "当前项目":
gridView1.DataSource = SqlDataSource2;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ; case "计划项目":
gridView1.DataSource = SqlDataSource3;
gridView1.DataBind();
row = gridView1.Rows.Count;
break; case "待审项目":
gridView1.DataSource = SqlDataSource4;
gridView1.DataBind();
row = gridView1.Rows.Count;
daishenP();
break ; case "审核通过项目":
gridView1.DataSource = SqlDataSource5;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ;
case "审核未通过项目":
gridView1.DataSource = SqlDataSource6;
gridView1.DataBind();
row = gridView1.Rows.Count;
break ;
default :
break;
}
}
protected void gridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int i; //执行循环,保证每条数据都可以更新
for (i = -1; i < row; i++)//
{
//首先判断是否是数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{
//当鼠标停留时更改背景色
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
//当鼠标移开时还原背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
} } //鼠标停留改变GridView行的颜色 protected void daishenP()
{
for (int i = 0; i < row; i++)
{
Literal lbl1 = new Literal();//换行
lbl1.Text = "<br>";
form1.Controls.Add(lbl1);
string projectName = gridView1.Rows[i].Cells[0].Text;
arrList.Add(projectName); Literal newLbl = new Literal();
newLbl.Text = projectName.PadRight(120, '-');
form1.Controls.Add(newLbl); HtmlInputCheckBox cbx = new HtmlInputCheckBox();
cbx.ID = i.ToString();
form1.Controls.Add(cbx); Label lbl = new Label();
lbl.Text = "要通过审批请打钩!";
form1.Controls.Add(lbl); Literal lbl2 = new Literal();//添加页面分割线
lbl1.Text = "<hr>";
form1.Controls.Add(lbl2);
}
Button shenPiBtn = new Button();
shenPiBtn.ID = "shenPiBtn";
shenPiBtn.Text = "通过审批";
shenPiBtn.Click += new EventHandler(shenPiBtn_Click);
form1.Controls.Add(shenPiBtn);
} protected void shenPiBtn_Click(object sender, EventArgs e)
{
//写在这里的代码都不会执行,就是shenPiBtn.Click事件没有执行
}
}
解决方案 »
- 2003系统 iis6.0 没遇到过的问题
- 怎么对ASP.NET MVC中每个控制器添加权限管理?
- 如何导出Excel,不保存在服务器上,直接弹出保存对话框保存在本地?
- 一个sql问题
- iframe 问题
- DropDownList的ToolTip怎么做?
- 我打开.net应用程序提示“无法从服务器检索文件夹信息”的错误
- vb的代码怎么转成c#的
- DataGrid分页问题
- asp.net中的viewstate到底是指什么?没看懂得说。
- 除了经常用到的服务库控件如:DataList 还有其他的什么可以在前台页面显示数据的呢?
- 大家帮忙看看哦,,,,最近要做一个英文房产门户网站,想找找源代码,3天结贴给分
{
.............
......................
shenPiBtn.Click += new EventHandler(shenPiBtn_Click);
form1.Controls.Add(shenPiBtn);
}你的daishenP()肯定是要在shenPiBtn_Click里执行的,但你在daishenP()里才绑定事件处理程序不是晚了吗?
//后没有执行其事件,动态控件本身也在刷新后消失了
using System;
using System.Data;
using System.Configuration;
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 _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
} protected void newBtn_Click(object sender, EventArgs e)
{
Response.Write("hi");
}
protected void Button1_Click(object sender, EventArgs e)
{
Button newBtn = new Button();
newBtn.ID = "aa";
newBtn.Text = "newBtn111";
newBtn .Click +=new EventHandler(newBtn_Click);
form1.Controls.Add(newBtn); }
}
{
string sql1 = "select 项目名称 from 项目信息 where 完成日期 IS NOT NULL and 开始日期 IS NOT NULL";//历史项目
string sql2 = "select 项目名称 from 项目信息 where 完成日期 IS NULL and 开始日期 IS NOT NULL ";//当前项目
string sql3 = "select 项目名称 from 项目信息 where 完成日期 IS NULL and 开始日期 IS NULL";//计划项目
string sql4 = "select 项目名称 from 项目信息 where 审核通过 IS NULL";//待审项目
string sql5 = "select 项目名称 from 项目信息 where 审核通过 = 1";//审核通过项目
string sql6 = "select 项目名称 from 项目信息 where 审核通过 = 0";//审核未通过项目
string connStr = "Data Source=(local);Initial Catalog=ProjectManagement;Integrated Security=True"; SqlConnection sqlConn = new SqlConnection(connStr);
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = sqlConn; sqlConn.Open();
#region
sqlCmd.CommandText = sql1;
SqlDataReader dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充历史项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("historyP").ChildNodes.Add(newNode); }
dr.Close();
sqlCmd.CommandText = sql2;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充当前项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("currentP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql3;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充计划项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("planP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql4;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充待审项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("daishenP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql5;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充审核通过项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("passP").ChildNodes.Add(newNode); }
dr.Close(); sqlCmd.CommandText = sql6;
dr = sqlCmd.ExecuteReader();
while (dr.Read())//填充待审项目
{
TreeNode newNode = new TreeNode(dr["项目名称"].ToString());
TreeView1.FindNode("noPassP").ChildNodes.Add(newNode); }
dr.Close(); #endregion//填充树 sqlConn.Close();
}
}
==============================
不能在!ispostback写个函数,然后再调用吗?晕!