_ItemDataBound事件内,如何获取repeater绑定数据的总数 _ItemDataBound事件内,我想对最后一条数据进行一些特殊处理所以需要取得当前的索引号和总记录数前者用e.items.itemindex可以获得,但是总数如何获得呢?请教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 总数可以在绑定前就得到,比如DataTable.Rows.Count等 这要看你的数据源,比如是DataTable或者List<T>,绑定前可以得到,如果是DataReader,绑定时只能得到当前索引,但不能得到记录总数 还有其他方法吗?可以在_ItemDataBound事件内获取总数因为数据绑定是在其他方法内获取和绑定的,我不希望在_ItemDataBound事件内再获取一次数据,这会消耗数据库开销的。还有一个办法是把数据源在绑定时候赋值给全局变量,但这并不是一个好的设计。 ItemDataBound事件的ItemType==Header的时候获取,要要不然,就不能判断最后是哪个了。无需再次读取数据库的,只需操作数据源即可 直接从repeater的DataSource属性获取行吗,控件本身就是全局定义的。 我尝试使用Repeater rpt = ((Repeater)sender);rpt.Items.Count;发现并不能获取总数,而且0,1,2,3。相当于e.items.itemindex 在数据源就可以获得数据总数的.例如一楼的DataTable,或者DataSet.Tables[0].rows.Count int DataCount = 0; protected void Page_Load(object sender, EventArgs e) { Repeater1.DataSource = CreateMengxianhuiDataSource(); System.Data.DataTable d = Repeater1.DataSource as System.Data.DataTable; DataCount = d.Rows.Count; Repeater1.DataBind(); } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) { if (DataCount - 1 == e.Item.ItemIndex) { Response.Write("xx"); } } } IIS6 上正常运常的自定义控件,在IIS7 未将对象引用设置到对象实例 求DataList输出表格,和查询列做和问题 Visual Studio 2010网站发布 阿里巴巴2222222222222222222222 问个血简单(对大虾来说)的问题,就当散分! 正则表达式的困惑 问一句 Atlas 现在发布正式版本了么? 关于DropDownList的一个问题,只剩10分大家帮忙!不胜感激! 散分~~~~! 如何由IP得到机器名?? 在window.showModalDialog弹出窗口中下载文件??? Excel上传图片
DataTable.Rows.Count等
无需再次读取数据库的,只需操作数据源即可
Repeater rpt = ((Repeater)sender);
rpt.Items.Count;发现并不能获取总数,而且0,1,2,3。
相当于e.items.itemindex
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = CreateMengxianhuiDataSource();
System.Data.DataTable d = Repeater1.DataSource as System.Data.DataTable;
DataCount = d.Rows.Count;
Repeater1.DataBind();
} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
if (DataCount - 1 == e.Item.ItemIndex)
{
Response.Write("xx");
}
}
}