2010-12-21 18 views
0

我想將ListView控件綁定到包含在DataSet類型中的數據。 我還介紹了通過DataPager類型進行分頁。獲取IListSource不包含ASP.NET中的任何數據源異常

第一次調用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包含所有結果。

上面的代碼返回完美的效果, 但在

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

其中LV是在.aspx頁面ListView控件。在分頁期間的第二次調用返回異常。

請幫忙!謝謝!

回答

0

你確定傳遞給getSubSet方法的rseultSet參數在第二次執行(分頁時)方法時是否爲空?調試代碼以查看返回的ds是否包含數據。

如果你想簡化和減少你的代碼,使用SqlDataSource(而不是手動綁定),並通過DataSourceID直接分配給LV。

+0

是的,我檢查,由getSubSet返回的DataSet不是空的,幷包含有效的數據。此外,我不能使用SqlDataSource,因爲我正在使用Web服務來獲取數據,它以DataSet格式返回數據。 – Kaniks 2010-12-22 04:43:25