ObjectDataSource数据绑定:在Select Method调用之后获取对象属性

时间:2010-02-22 15:53:29

标签: asp.net data-binding objectdatasource

我使用ObjectDataSource控件来调用MapInfo对象。该对象有两个属性:

  • 公众IList访问
  • public int TotalAvailable

select方法返回IList,但也会填充TotalAvailable属性。我已将ObjectDataSource中的TypeName设置为MapInfo对象,但由于Select方法仅返回IList,因此我无法访问TotalAvailable。

[DataObject(true)]
public sealed class MapInfo
{
    private IList<Visit> visits;
    private int totalCount;

    public IList<Visit> Visits
    {
        get
        {
            if (visits == null)
                visits = new List<Visit>();
            return visits;
        }
        set
        {
            visits = value;
        }
    }

    [DataObjectMethod(DataObjectMethodType.Select)]
    public IList<Visit> GetAccountVisits(DateTime startdate, DateTime enddate, string orgids, int reportlevel,
         string username, int authlevel, bool visited, bool notvisited, string accounttypeid)
    {

}

有没有办法访问此值。我知道它正在MapInfo对象中填充,但从Select方法返回的所有内容都是IList

2 个答案:

答案 0 :(得分:0)

数据源在选择发生后触发Selected事件;您可以尝试查看它是否在那里公开了根对象。

HTH。

答案 1 :(得分:0)

我已将SelectMethod的返回类型更改为:

[DataObjectMethod(DataObjectMethodType.Select)]
public MapInfo GetAccountVisits(DateTime startdate, DateTime enddate, string orgids, int reportlevel,
     string username, int authlevel, bool visited, bool notvisited, string accounttypeid)
{

在CreateChildControls方法的CompositeDataBoundControl中,我然后使用:

DataBinder.Eval(((object[])(dataSource))[0], "Visits");

虽然会欣赏更优雅的解决方案。