DataList内的控件问题

品铭工作室 2007-01-06 04:59:49
在DataList里的FooterTemplate有一个Button控件
在DataList事件ItemCommand中用e.Item.Findcontrol("button")方法找到这个控件并使这个Button控件不可用(Enabled=false)
然后再重新Binding数据
问题:该Button控件并没有被禁用,而这时候的button.Enabled却等于false,有朋友遇到类同的问题吗?
是什么回事呢???
...全文
250 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
石翮 2007-01-06
  • 打赏
  • 举报
回复
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();
}


品铭工作室 2007-01-06
  • 打赏
  • 举报
回复
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() ;//对数据进行分页绑定的方法
}
wslinfeng 2007-01-06
  • 打赏
  • 举报
回复
贴出你的代码看看

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧