2012-03-29 20 views
2

現在、GridViewを使用して表形式のデータを表示しています。私は等しい値を持つ最初の列のセルをマージする必要があります。現時点ではPreRenderイベントのコードでRowSpanのプロパティを設定しても問題ありません。ASP.netグリッドページングとマージ済み行

問題は、ページが最初のフィールドが等しいセクションの中央に分割されるため、ページングを使用できないことです。

ページングのレコード数を、各サブ行ごとに1つではなく、マージされた行ごとに1つカウントする必要があります。

これはGridViewまたは他のjQueryグリッドで可能ですか?

+1

こんにちはアンドリューeの解決策です。行をマージした後、Asp.netのGridviewと同じ問題に直面しています。 – Venki

+0

この質問に再度注意が必要です。 – Nicolas

答えて

0

UIレベルでマージを処理するのではなく、直接バインドできるようにデータソースを準備することはできますか?

簡単にバインドする形式でデータを含むビューモデルを基本的に作成します。

GridView.DataSource() = vmAlreadyMergedAndReadtToGoOBject 
GridView.DataBind(); 

私はあなたからデータを取得している場所がわからないですが、あなたは、あなたがプログラム的にあなたがあなたの元から戻って取得した結果に基づいて、あなたのグリッドにバインドしたオブジェクト構築することはできません(データベースを?) その後同じ値の行の値を結合してオブジェクトを作成すると、グリッドをバインドできるだけです...やっていることを完全にはっきりさせることはできませんが、これが頭に浮かんだ最初のことでした....

+0

データソースの行をマージする方法がわかりません - 詳細を教えてください。 – Flash

+0

オリジナルの回答が更新されました – TGH

0
for (i = PagSize; i <= dt.Rows.Count; i++) 
{ 
    Curr = dt.Rows[i - 1]["Brand"].ToString(); 
    if (i < dt.Rows.Count) 
    { 
     Nxt = dt.Rows[i]["Brand"].ToString(); 
     diff = dt.Rows.Count - i; 
     if (Curr != Nxt) 
     { 
      DctPaging.Add(PageNum, i); 
      PageNum = PageNum + 1; 
      i = i + PagSize; 
      if (i >= dt.Rows.Count) 
      { 
       DctPaging.Add(PageNum, i); 
       break; 
      } 
     } 
    } 
} 

参照Click Here

関連する問題