2010-11-22 111 views
0

我有自定义SPlist与一些字段,我想绑定到一个可视的Web部件内的中继器。我无法使用SPDataSource,因为我必须在绑定之前使用列表执行一些自定义内容。Sharepoint 2010数据绑定与列表自定义列

如何以这种方式绑定自定义列?当我使用eval上的自定义专栏中,我得到一个错误

如果我用它做一次工作评估和演示数据源(“HoursOfOperation”)测试:

<SharePoint:SPDataSource runat="server" ID="data" DataSourceMode="List" 
    SelectCommand="<Where><Eq><FieldRef Name='CBC'/><Value Type='Boolean'>0</Value></Eq></Where>"> 
    <SelectParameters> 
     <asp:Parameter Name="WebUrl" DefaultValue="/" /> 
     <asp:Parameter Name="ListName" DefaultValue="Locations" /> 
    </SelectParameters> 
</SharePoint:SPDataSource> 

但是,如果我用下面的代码我出现错误DataBinding:'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(); 

我在这里错过了什么?

回答

1

好吧,这个发现自己:

对于需要将DataItem的转换为SPListItem并通过名称获得属性的非索引属性。

<%# ((SPListItem)Container.DataItem)["HoursOfOperation"] %> 
相关问题