在DataList里的FooterTemplate有一个Button控件
在DataList事件ItemCommand中用e.Item.Findcontrol("button")方法找到这个控件并使这个Button控件不可用(Enabled=false)
然后再重新Binding数据
问题:该Button控件并没有被禁用,而这时候的button.Enabled却等于false,有朋友遇到类同的问题吗?
是什么回事呢???

解决方案 »

  1.   

    private void dlThis_ItemCommand(object source, 
    System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
    dlThis.SelectedIndex = e.Item.ItemIndex ;
    if(e.Item.ItemType==ListItemType.Footer)
    {
    ((Button)e.Item.FindControl("btnPageFirst")).Enabled = true ;
    ((Button)e.Item.FindControl("btnPageAhead")).Enabled = true ;
    ((Button)e.Item.FindControl("btnPageNext")).Enabled = true ;
    ((Button)e.Item.FindControl("btnPageLast")).Enabled = true ;
    string actionText = e.CommandArgument.ToString() ;
    int index =Convert.ToInt32(Session["index"]) ;
    if( actionText =="first")
    {
    Session["index"] = 0 ;
    ((Button)e.Item.FindControl("btnPageFirst")).Enabled = "false" ;
    ((Button)e.Item.FindControl("btnPageAhead")).Enabled = false ;
    }
    else if( actionText =="ahead")
    {
    Session["index"] =--index;
    }
    else if( actionText =="next")
    {
    Session["index"] =++index ;
    }
    else if( actionText =="last")
    {
    Session["index"] = Convert.ToInt32(ViewState["pageCount"])-1 ;
    ((Button)e.Item.FindControl("btnPageNext")).Enabled = false ;
    ((Button)e.Item.FindControl("btnPageLast")).Enabled = false ;
    }

    }
    dlThisDataBinding() ;//对数据进行分页绑定的方法
    }
      

  2.   

    private void dlThis_ItemCommand(object source, 
    System.Web.UI.WebControls.DataListCommandEventArgs e)
    {
    }
    你放置的事件不正确所以无效!
    我把我的分页代码给你看看,参考一下吧!!
    +++++++++++++++++++++++++++++++++++++
    public class news_modify : System.Web.UI.Page
    {
    protected System.Web.UI.HtmlControls.HtmlForm form1;
    protected System.Web.UI.WebControls.DataList dl_news;
    protected System.Web.UI.WebControls.Button btn_prv;
    protected System.Web.UI.WebControls.Button btn_next;
        private NewsHdl newshdl=new NewsHdl();
    protected System.Web.UI.WebControls.Button btnFirt;
    protected System.Web.UI.WebControls.Button btnLast;
    int PageSize;   //每页显示条目数量
    int RecordCount; //总记录数
    int PageCount;   //总页数
    int CurrentPage;  //当前页数
    protected System.Web.UI.WebControls.Label l_pagesize;
    protected System.Web.UI.WebControls.Label l_curpage;
    protected System.Web.UI.WebControls.Button btndel;  
    protected System.Web.UI.WebControls.Label l_pagecount;   
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面

    PageSize=3;  //每页显示初始化新闻数量
    this.l_pagesize.Text=PageSize.ToString();
    RecordCount=newshdl.getRecordCount();  //获取总记录数
    PageCount=(RecordCount%PageSize)>0?(RecordCount/PageSize)+1:(RecordCount/PageSize);  //计算总页数
    this.l_pagecount.Text=PageCount.ToString();
    this.dl_news.DataKeyField="hbtd_NewsId";
    if(!this.IsPostBack)
    {   
    CurrentPage=1;   //初始化当前页码为1
    this.l_curpage.Text=CurrentPage.ToString();
    this.DataBindDG();

         }
    }
    private void DataBindDG()
    {
    System.Web.UI.WebControls.PagedDataSource ps =new PagedDataSource();  
    ps.DataSource=newshdl.selectNews().DefaultView;  //将datatable视图赋值给分页数据源
    ps.AllowPaging=true;   //是否允许分页
    ps.PageSize=PageSize;         //每页显示条目数量
    ps.CurrentPageIndex=CurrentPage-1;   //获取当前页的索引(索引是从0值开始)     
    this.btn_prv.Enabled=true;       //上一页按钮初始状态为可用
    this.btn_next.Enabled=true;       //下一页按钮初始状态为可用
    this.btnFirt.Enabled=true;       //首页按钮初始状态为可用
    this.btnLast.Enabled=true;      //尾页按钮初始状态为可用
    if(CurrentPage==1)
    {
                      this.btn_prv.Enabled=false;       //第一页时:上一页按钮状态为不可用
      this.btnFirt.Enabled=false;     
      this.btn_next.Enabled=true;     
      this.btnLast.Enabled=true;
    }
    if(CurrentPage==PageCount)
    {
                      this.btn_next.Enabled=false;       //最后一页时:下一页按钮状态为不可用
      this.btnLast.Enabled=false;
      this.btn_prv.Enabled=true;       
      this.btnFirt.Enabled=true;  
    }
    this.dl_news.DataSource=ps;           //将DataList的数据源设置为可分页的数据
    this.dl_news.DataBind();             //绑定

    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.dl_news.DeleteCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.dl_news_DeleteCommand);
    this.dl_news.ItemDataBound += new System.Web.UI.WebControls.DataListItemEventHandler(this.dl_news_ItemDataBound);
    this.btndel.Click += new System.EventHandler(this.btndel_Click);
    this.btnFirt.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
    this.btn_prv.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
    this.btn_next.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
    this.btnLast.Command += new System.Web.UI.WebControls.CommandEventHandler(this.Page_OnClick);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    private void Page_OnClick(object sender,CommandEventArgs e) 
    {
                CurrentPage=Convert.ToInt32(this.l_curpage.Text);
    PageCount =Convert.ToInt32(this.l_pagecount.Text);
    string str=e.CommandName;
    switch(str)
    {
    case "First":
                       CurrentPage=1;
       break;
    case "Prv":
      if(CurrentPage>1) --CurrentPage;
      break;
    case "Next":
      if(CurrentPage<PageCount) ++CurrentPage; 
      break;
    case "Last":
    CurrentPage=PageCount;
    break;
    // case "DEL":
    // newshdl.delNews(this.dl_news.DataKeys.ToString(),1);
    // break; }
    this.l_curpage.Text=CurrentPage.ToString();
                this.DataBindDG();
    }