【问题标题】:Getting the IListSource does not contain any data sources exception in ASP.NET获取 IListSource 不包含 ASP.NET 中的任何数据源异常
【发布时间】:2011-05-28 17:43:26
【问题描述】:

我正在尝试将 ListView 控件绑定到 DataSet 类型中包含的数据。 我还介绍了通过 DataPager 类型进行分页。

在第一次调用 DataBind 时,绑定完美。 但是,当我单击 Next 检索下一组结果时,即使我的函数返回了适当的 DataSet,它也无法进行绑定。

 void getSubSet(int rowindex, DataSet resultSet, int pageSize)
 {
   DataSet ds = new DataSet();
   DataTable tb = new DataTable();
   for (int cols = 0; cols < resultSet.Tables[0].Columns.Count; cols++)
   {
     DataColumn dc = new DataColumn(resultSet.Tables[0].Columns[cols].ColumnName,
                                           resultSet.Tables[0].Columns[cols].DataType);
     tb.Columns.Add(dc);
   }
   for (int i = rowindex; ((i < resultSet.Tables[0].Rows.Count) && (i < rowindex + pageSize)); i++ )
   {
     DataRow rowToBeAdded = resultSet.Tables[0].Rows[i];
     DataRow newRow;
     newRow = tb.NewRow();
     for (int j = 0; j < resultSet.Tables[0].Columns.Count; j++)
          newRow[j] = rowToBeAdded[j];
     tb.Rows.Add(newRow);
   }
   ds.Tables.Add(tb);
   return ds;
 }

DataSet resultSet 包含所有结果。

上面的sn-p返回完美的结果, 但是在

LV.DataSource = getSubSet(newIndex, resultSet, pageSize);
LV.DataBind();

其中 LV 是 .aspx 页面中的 ListView 控件。在分页期间第二次调用返回异常。

请帮忙!谢谢!

【问题讨论】:

    标签: c# asp.net listview binding


    【解决方案1】:

    您确定传递给 getSubSet 方法的 rsesultSet 参数在该方法第二次执行时(分页时)不为空吗?调试代码查看返回的ds是否包含数据。

    如果您想简化和减少代码,请使用 SqlDataSource(而不是手动绑定)并通过 DataSourceID 将其直接分配给 LV。

    【讨论】:

    • 是的,我检查了,getSubSet 返回的DataSet 不为空,并且包含有效数据。另外,我不能使用 SqlDataSource,因为我使用 Web 服务来获取数据,它以 DataSet 格式返回数据。
    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    相关资源
    最近更新 更多