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);
}
}
展开
 我来答
帅气的地球
2009-11-16 · TA获得超过266个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:144万
展开全部
是不是你 以前repeater数据绑定没有在iF(!page.ispostback)中执行,那样的话就会导致你每次点击按钮的时候,进行回发首先发生的事件是页面刷新,这样的话你得rep就会重新绑定,那你得command事件当然也就没有了
百度网友6f75ac8fa
2009-11-16 · TA获得超过2513个赞
知道大有可为答主
回答量:1.3万
采纳率:0%
帮助的人:4010万
展开全部
要回发到服务器或者是利用空间的公共事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuf19
2009-11-16 · 超过19用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:41.3万
展开全部
一开始 由于缺少if (!IsPostBack) 判断, 导致每次都会 绑定数据,楼主可以看看,将代码还原,加断点来看看就知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式