)Container.DataItem)[“字段名”]%>或 <%#((DataRowView)Container.DataItem).Rows[0][“字段名”]%> 要格式化则: <%#string.Format(“格式”,((DataRowView)Container.DataItem)[“字段名”])%> <%#DataBinder.Eval <%# ((DataRowView)Container.DataItem)[“xxxx”]%> 非常实用的,这样能够在前台页面做好多事情了。 绑定到DataSet、DataTable时: <%#((System.Data.DataRowView)Container.DataItem)[“字段名”]%> <%#((System.Data.DataRowView 假设你的数据源是DataTable,则这个数据项的类型实际是DataRowView。
先认识几个概念: dgv单元格:DataGridViewCell dgv行:DataGridViewRow dgv行的源行:DataRowView。 而dv又是根据dt来的,所以dv背后又对应一个dt,所以DataRowView背后也对应一个DataRow,可通过DataRowView.Row获得该DataRow。 简单表示就是,DataGridViewRow(访问DataBoundItem属性)→DataRowView(访问Row属性)→DataRow dgv有单元格的概念和实体类(DataGridViewCell ),但dt和dv没有,后者只到行这一级,虽然可以通过DataRow[x]或DataRowView[x]访问单元格的值,但在类层级上并不存在DataCell这样的表示单元格的实体类,也就是dt和dv的编辑 DataRow的EndEdit()也能达到同样目的 //(dgv.CurrentRow.DataBoundItem as DataRowView).Row.EndEdit();
常见的三种数据源以及其e.Item.DataItem的转换方法: //使用DataSet和DataTable绑定数据源时 DataRowView view = (DataRowView)e.Item.DataItem e.Item.FindControl("rptMedicine"); //找到父级Repeater关联的数据项 //System.Data.DataRowView rowv = (System.Data.DataRowView)e.Item.DataItem; //提取分类ID //int PrescriptionId
sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DataRowView dr = e.Row.DataItem as DataRowView; num += Convert.ToInt32(dr.Row["first"]); } else
ListItemType.AlternatingItem)) { //string classname = ((Button)e.Item.FindControl(“gDel”)).Text; DataRowView drv = (DataRowView)e.Item.DataItem; Repeater rptProductList = (Repeater)e.Item.FindControl(“IndexGoodsImgs ListItemType.AlternatingItem)) { //string classname = ((Button)e.Item.FindControl(“gDel”)).Text; DataRowView drv = (DataRowView)e.Item.DataItem; Image image = (Image)e.Item.FindControl(“goodsImg”);
ItemDataBound里绑定数据 DataRowView drv = (DataRowView)e.Item.DataItem; int Uid = (int)drv[“UserID”];
EnableViewState="false">
<ItemTemplate>
<%# (Container.DataItem as DataRowView )["用户"]%> 在 [<%# (Container.DataItem as DataRowView)["访问时间"]%>] 访问了网页:
<%# (Container.DataItem as DataRowView)["访问页面"]%>
浏览器信息是:<%# (Container.DataItem as DataRowView)["UserAgent"]%>
<%# ((DataRowView)Container.DataItem)["xxxx"]%> 很有用的,这样可以在前台页面做好多事情了。 如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView。 )Container.DataItem)["字段名"] %> <%# string.Format("{0:c}", ((DataRowView)Container.DataItem)["字段名 类型转换例子:<%# (int)((DataRowView)Container.DataItem)["字段名1"]*(int) ((DataRowView)Container.DataItem)["字段名 所以三者中<%#((DataRowView)Container.DataItem) ["字段名"] %>的性能最好。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { System.Data.DataRowView drv; drv = (System.Data.DataRowView)e.Row.DataItem; if (e.Row.RowType == DataControlRowType.DataRow
= (Repeater) e.Item.FindControl( “ rptProduct “ ); // 找到分类Repeater关联的数据项 DataRowView rowv = (DataRowView)e.Item.DataItem; // 提取分类ID int CategorieId = Convert.ToInt32 GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DataRowView rowv = (DataRowView)e.Row.DataItem; Label lblCareer = (Label)e.Row.FindControl
e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView rv = (DataRowView)e.Item.DataItem; // 获取第四列的值 Int32 nUnitsInStock = Convert.ToInt32(rv.Row.ItemArray
Repeater rep = e.Item.FindControl("rpquestionlist") as Repeater;//找到里层的repeater对象 DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 int typeid = Convert.ToInt32(rowv
e.Item.FindControl( “ rpquestionlist “ ) as Repeater; // 找到里层的repeater对象 DataRowView rowv = (DataRowView)e.Item.DataItem; // 找到分类Repeater关联的数据项 int typeid = Convert.ToInt32
ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView drv = (DataRowView)e.Item.DataItem; string state = drv.Row.ItemArray[4].ToString();
Repeater rpt = e.Item.FindControl( “ repeater2 “ ) as Repeater; DataRowView rowv = (DataRowView)e.Item.DataItem; int pid = Convert.ToInt32(rowv[ “ CATEGORY_ID “
Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct"); //找到分类Repeater关联的数据项 DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID int CategorieId = Convert.ToInt32(rowv
Repeater ID="Rpt" runat="server"> <ItemTemplate>
e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView drv = (DataRowView)e.Item.DataItem; //设置每一行的序号 int num = e.Item.ItemIndex +
dgvBook.SelectedRows.Count;i++) { dr = (dgvBook.SelectedRows[i].DataBoundItem as DataRowView dgvReader.SelectedRows.Count; j++) { ds = (dgvReader.SelectedRows[j].DataBoundItem as DataRowView
Repeater rep = e.Item.FindControl("Repeater2") as Repeater;//找到里层的repeater对象 DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 int typeid = Convert.ToInt32