e.Item.ItemType

在数据绑定获取行中内容或控件的时候我们经常用到这个。

看名字就知道这是什么什么的类型。呵呵~~~~

常用的有下面几种:

1:e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem
指触发的类型为DadaList中的基本行或内容行

2:e.Item.ItemType == ListItemType.Header
指触发的类型为DadaList中的标题行的内容

察看相关资料可以看到如下相关信息

ListItemType 枚举    [C#]请参见
System.Web.UI.WebControls 命名空间 | DataGridItem.ItemType | DataListItem.ItemType | RepeaterItem.ItemType
要求
命名空间: System.Web.UI.WebControls

全部显示

指定列表控件中项的类型。
备注
ListItemType    枚举表示可以包含在列表控件中的不同项,例如 DataGrid、DataList 和 Repeater。典型的列表控件由包含此枚举所表示的元素的单元格组成。

成员
成员名称            说明
AlternatingItem    交替(从零开始的偶数索引)单元格中的项。它是数据绑定的。
EditItem     列表控件中当前处于编辑模式的项。它是数据绑定的。
Footer     列表控件的页脚。它不是数据绑定的。
Header     列表控件的页眉。它不是数据绑定的。
Item    列表控件中的项。它是数据绑定的。
Pager     页导航,显示定位到与 DataGrid 控件关联的不同页的控件。它不是数据绑定的。
SelectedItem     列表控件中的选定项。它是数据绑定的。
Separator    列表控件中项之间的分隔符。它不是数据绑定的。

 

(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
是判断项是控件内容中的项或交插项
“e.Item.ItemType == ListItemType.Header”
是判断项是不是控件的表头

另外在绑定中获取同一行相关信息下面方法会比较方便当然下面的内容是写在OnItemDataBound事件里的~~~~

DataRowView MyRow= (DataRowView)e.Item.DataItem;
MyRow["这里是相关字段名称"]

 
const ViewRender = memo((props: ViewProps) => { const { pointData, pageData, width, dragStop, onDragStart, onResizeStop, preview } = props; const FixedData: Array<PointDataItem> = pointData.filter(e => e.item.type == 'Fixed') const nFixedData: Array<PointDataItem> = pointData.filter(e => e.item.type != 'Fixed') return ( (!preview ? ( <GridLayout cols={24} rowHeight={2} margin={[0, 0]} width={width} // @ts-expect-error onDragStop={debounce(dragStop, 500)} onDragStart={onDragStart} onResizeStop={onResizeStop} style={{ minHeight: '100vh', backgroundSize: '100%', backgroundRepeat: 'no-repeat', backgroundColor: pageData && pageData.bgColor, backgroundImage: pageData && pageData.bgImage ? `url(${pageData.bgImage[0].url})` : 'initial' }} > {pointData.map((value: PointDataItem) => ( <div key={value.id} data-grid={value.point} className={onDragStart && styles.dragItem} style={{ overflow: value.item.type == 'Fixed' ? 'visible' : 'hidden' }}> {value.item.type == 'Fixed' ? ( <div style={{ transform: `translateY(-${value.item.config.y}px)` }}> <DynamicEngine {...(value.item as any)} isTpl={false} /> </div> ) : ( <DynamicEngine {...(value.item as any)} isTpl={false} /> )} </div> ))} </GridLayout> ) : ( <> <GridLayout cols={24} rowHeight={2} margin={[0, 0]} width={width} style={{ minHeight: '100vh', backgroundSize: '100%', backgroundRepeat: 'no-repeat', backgroundColor: pageData && pageData.bgColor, backgroundImage: pageData && pageData.bgImage ? `url(${pageData.bgImage[0].url})` : 'initial' }}> {nFixedData.map((value: PointDataItem) => ( <div key={value.id} data-grid={value.point}> <DynamicEngine {...(value.item as any)} isTpl={false} /> </div> ))} </GridLayout> {FixedData.map((value: PointDataItem) => ( <div key={value.id} data-grid={value.point}> <DynamicEngine {...(value.item as any)} isTpl={false} /> </div> ))} </> )) ) })帮我优化这段代码
最新发布
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值