Sharepoint 2010使用列表自定义列进行数据绑定

Sharepoint 2010使用列表自定义列进行数据绑定,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我有一个自定义的SPlist,其中包含一些字段,我想将这些字段绑定到可视化web部件中的转发器。我不能使用SPDataSource,因为我必须在绑定之前对列表进行一些自定义操作 如何以这种方式绑定自定义列?当我在自定义列上使用Eval时,我得到一个错误 如果我使用数据源进行测试,它将再次工作Eval(“HoursOfOperation”): 但是,如果使用以下代码,数据绑定时会出现错误:“Microsoft.SharePoint.SPListItem”不包含名为“HoursOfOperati

我有一个自定义的SPlist,其中包含一些字段,我想将这些字段绑定到可视化web部件中的转发器。我不能使用SPDataSource,因为我必须在绑定之前对列表进行一些自定义操作

如何以这种方式绑定自定义列?当我在自定义列上使用Eval时,我得到一个错误

如果我使用数据源进行测试,它将再次工作Eval(“HoursOfOperation”):


但是,如果使用以下代码,数据绑定时会出现错误:“Microsoft.SharePoint.SPListItem”不包含名为“HoursOfOperation”的属性。

  SPSite site = SPContext.Current.Site;
  SPWeb web = site.RootWeb;

  SPQuery query = new SPQuery();
  query.ViewFieldsOnly = true;
  query.Query = string.Concat(
                                "<Where><Eq>",
                                    "<FieldRef Name='CBC'/>",
                                    "<Value Type='Boolean'>0</Value>",
                                "</Eq></Where>"
                                );

  SPList list = web.Lists["Locations"];
  SPListItemCollection items = list.GetItems(query);

  rp.DataSource = list;
  rp.DataBind();
SPSite site=SPContext.Current.site;
SPWeb=site.RootWeb;
SPQuery query=新建SPQuery();
query.ViewFieldsOnly=true;
query.query=string.Concat(
"",
"",
"0",
""
);
SPList list=web.list[“位置”];
SPListItemCollection items=list.GetItems(查询);
rp.DataSource=list;
rp.DataBind();
我在这里遗漏了什么?

好的,我自己发现了:

对于非索引属性,您需要将dataitem强制转换为SPListItem并按名称获取属性

<%# ((SPListItem)Container.DataItem)["HoursOfOperation"] %>

<%# ((SPListItem)Container.DataItem)["HoursOfOperation"] %>