repeater子控件触发事件
我在repeater中加了一个Button控件然后在reoeater控件点击Button控件时在repeater控件的ItemCommand事件中完成一些操作但是Item...
我在repeater中加了一个Button控件然后在reoeater控件点击Button控件时在repeater控件的ItemCommand事件中完成一些操作但是ItemCommand事件好像并没触发(Itemcommad事件代码没有被执行),后来我在Pageload实践中加入了iF(!page.ispostback)判断事件中的代码就可以被执行了!我想知道为什么会出现这种情况Itemcommad事件和Page.IsPostBack有什么联系没有?
代码如下:
public class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater GridList;
protected CEMS.WEB.UserControl.PageBar PageBar;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.Button Button3;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
COL.WebUserData webUserData = (COL.WebUserData)Session["WebUserData"];
string id=webUserData.Id.ToString();
string code="1009";
IList list=DAL.WebUserDAL.IsHaveThisACL(code,id);
if(list.Count.Equals(0))
{
//throw new Exception("msg=您不具备这一功能的使用权!!&type=WARN");
//Response.Write(" <center > <p style='background:#ff0000'>您不具备这一功能的使用权!!</p></center>");
Response.Write("<script >history.back(-1);</script>");
//return;
}
else
{
if(!Page.IsPostBack)
{
string whereSQL = " (cr.itemPursue='0' and ay.whetherpass!='2') or (cr.PursueEstate='项目追踪' and ay.whetherpass!='2')";
PageBar.DataSource = BLL.CustomerBLL.GetCustomerListByWhereSQL(whereSQL);
GridList.DataSource = PageBar.PageData;
GridList.DataBind();
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.GridList.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.GridList_ItemCommand);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void GridList_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
string CustomerId=Server.UrlEncode(e.CommandArgument.ToString());
if(e.CommandName.ToString()=="Button2")
{
Response.Redirect("PursueData.aspx?CustomerId="+CustomerId+"&kind=Update");
}
else if(e.CommandName.ToString()=="Button3")
{
Response.Redirect("a.aspx?CustomerId="+CustomerId+"&kind=3");
}
else if(e.CommandName.ToString()=="LinkButton1")
{
Response.Redirect("../MomentDemand/PageCollum.aspx?CustomerId="+CustomerId);
}
} 展开
代码如下:
public class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater GridList;
protected CEMS.WEB.UserControl.PageBar PageBar;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.Button Button3;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
COL.WebUserData webUserData = (COL.WebUserData)Session["WebUserData"];
string id=webUserData.Id.ToString();
string code="1009";
IList list=DAL.WebUserDAL.IsHaveThisACL(code,id);
if(list.Count.Equals(0))
{
//throw new Exception("msg=您不具备这一功能的使用权!!&type=WARN");
//Response.Write(" <center > <p style='background:#ff0000'>您不具备这一功能的使用权!!</p></center>");
Response.Write("<script >history.back(-1);</script>");
//return;
}
else
{
if(!Page.IsPostBack)
{
string whereSQL = " (cr.itemPursue='0' and ay.whetherpass!='2') or (cr.PursueEstate='项目追踪' and ay.whetherpass!='2')";
PageBar.DataSource = BLL.CustomerBLL.GetCustomerListByWhereSQL(whereSQL);
GridList.DataSource = PageBar.PageData;
GridList.DataBind();
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.GridList.ItemCommand += new System.Web.UI.WebControls.RepeaterCommandEventHandler(this.GridList_ItemCommand);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void GridList_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
string CustomerId=Server.UrlEncode(e.CommandArgument.ToString());
if(e.CommandName.ToString()=="Button2")
{
Response.Redirect("PursueData.aspx?CustomerId="+CustomerId+"&kind=Update");
}
else if(e.CommandName.ToString()=="Button3")
{
Response.Redirect("a.aspx?CustomerId="+CustomerId+"&kind=3");
}
else if(e.CommandName.ToString()=="LinkButton1")
{
Response.Redirect("../MomentDemand/PageCollum.aspx?CustomerId="+CustomerId);
}
} 展开
3个回答
展开全部
要回发到服务器或者是利用空间的公共事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一开始 由于缺少if (!IsPostBack) 判断, 导致每次都会 绑定数据,楼主可以看看,将代码还原,加断点来看看就知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询