2011-07-21 5 views
3

に表示されるデータは、私がのObjectDataSource及び(.NET3.5/W VS2008を使用して)以下に示すような構成のGridViewを有していない。のObjectDataSourceページング - > GridViewの

<asp:ObjectDataSource ID="odsMainData" runat="server" EnablePaging="True" OldValuesParameterFormatString="original_{0}" 
     SelectMethod="GetMainData" TypeName="ErrorViewer.Model.ErrorViewModel" 
     SelectCountMethod="CountMainData"> 
     <SelectParameters> 
      <asp:Parameter Name="maximumRows" Type="Int32" /> 
      <asp:Parameter Name="startRowIndex" Type="Int32" /> 
     </SelectParameters> 
    </asp:ObjectDataSource> 
    <asp:GridView ID="grdMainData" runat="server" AllowPaging="True"    DataSourceID="odsMainData" PageSize="15" AllowSorting="True"> 
    </asp:GridView> 

に何らのEventHandlerまたは他のコードがありません。 GridViewの又は

だから下地クラス "ErrorViewModel" の方法があるデータソースの背後にあるコード: パブリックデータテーブルGetMainData(){ するvar DT = provider.MainData()。 myMainData = dt; return dt; }私が欲しいもの

public DataTable GetMainData(int maximumRows, int startRowIndex) 
    { 
     var dt = provider.MainData(); 
     myMainData = dt; 
     return dt; 
    } 

    public long CountMainData() 
    { 
     var count = provider.GetMainDataCount(); 
     return count; 
    } 

    public long CountMainData(int maximumRows, int startRowIndex) 
    { 
     var count = CountMainData(); 
     return count; 
    } 

:カスタムサーバーサイドページング。 問題: データソースでEnablePaging = trueを設定すると、gridviewにデータが表示されません。 EnablePagingがfalseに設定されている場合は、データが表示されます。ご覧のとおり、データを取得する2つの方法はまったく同じです。 デバッグでは、EnablePaging = trueを使用したときに返される行があることが示されています。 (EnablePaging =真を使用して) もう奇妙なこと:GetMainData maximumRowsで がCountMainData maximumRowsに0 にstartRowIndex 15にして設定されているが、私は別のカスタムページングのこのタイプを実装しました0

にstartRowIndex 0にして設定されています同じ設定をしましたが、今度はこの奇妙な動作にあります。私の実装で何が間違っていますか?私はちょっとした設定を忘れましたか?助言がありますか?

答えて

5

間違いは、CountMainDataが整数を返さなかったことです。 整数を返すようにCountMainDataを変更した後、すべて正常に機能しました。

+0

あなたの質問を解決済みとしてマークするには、この回答を解決策にマークしてください(チェックマークをクリックしてください)。 – eckes

+0

「Long」はレコード数の有効な戻り値ではないというのは心苦しいです。これを指摘してくれてありがとう...そして答えとしてマークしてください。 – cjbarth

+0

@ user855601この問題の解決策を見つけるために、グリッドとオブジェクトデータソースを別々に破るのに8時間を費やすだけです。答えをありがとう! –

関連する問題