2011-08-11 9 views
2

複数のページを持つグリッドビューのチェックボックスからポストバック時に情報を取得しようとしています。 1ページ分のデータがある場合は問題なく動作しますが、ページングのチェックボックスは、別のページに移動した場合にどのページを表示していても常にfalseを返します。たとえば、私のアプリでは、私はページ2のリンクをクリックして、そのページのチェックボックスを選択してから投稿しました。私のハンドラでは、すべての行を繰り返し、このようにチェックします。ページングを使用しているときにグリッドビューのコントロールにアクセスする

私が望む情報は2ページ目の1行目(6行目)です。しかしチェックボックスはチェックされていません。

? grdView.Rows.Count 5 
? grdView.PageCount 2 
? grdView.PageSize 5 

をだから、ページあたり5行と2ページ、それはよりその5行を見ていないがある知っているにもかかわらず:ここに私のGridViewが報告されているものです。また、PageIndexを1(2ページ目)に設定すると、2ページ目に1行しかなくても、grdView.Rows.Count = 5に設定されています。

ページ番号を2番目のページに設定しても、最初のページと同じ戻り値が得られます。私は最初のもの以外のページで何かを得る方法を理解できません。

私はこれを捜したことがあり、驚いたことに、これはデータを取得するために一般的に使用されるものであると思われるため、答えが見つからないことがあります。 これはC#セクションの未回答の質問の再投稿ですが、新鮮な投稿で回答が見つかる可能性があります。

チェックボックスのフィールドを見て、番号の問題が見つかりました。たとえば2ページ目には1行あり、チェックボックスのIDは.... $ ctl02 $ ...しかし、ループ内のチェックボックスを照会するとUniqueIDが.... $ ctl11 $となります。だから明らかに彼らは偽を返している。しかし、ページに表示されるIDを持つRequest.Itemを実行すると、チェックボックスが表示されます。 UniqueIDを使用すると、チェックボックスに何も表示されず、すべてのチェックボックスのチェックされたプロパティがfalseになります。

ご協力いただければ幸いです。あなたがデータバインドするとき

grid.DataSource = something 
grid.DataBind() 

、データの現在のページの価値がグリッドにバインドされ、より多くの何も:あなたが最初にGridViewコントロールにデータを設定すると

+0

いくつかのコードを表示してもう少し説明できますか?グリッドビューを使用している間に誰かが現在のページで何もアクセスできない理由がわかりません – naveen

+0

OK - 上記は私が使用するループです。チェックボックスをオンにすると、データベースのレコードのGUID IDを持つ非表示のフィールドが表示されます。しかし、ページを切り替えると、すべてのチェックボックスがfalseを返します。私はチェックボックスのUniqueIDが正しくないと思われる方法について、より多くの情報の上に挿入しました。 – netwisedev

+0

表示されないので、この解決策には解決策があります.Javascriptを使用して有効な情報を取得して、ページ上のコントロールを次のように繰り返します:document.getElementsByTagName( "input"); (oCheckbox.id.indexOf(sFieldID)> 0)、行を見つけて、その行の他の情報を取得するために私のポストバックでRequest.Form.Item()を使用しているかどうかを調べます。これはかなりではありませんが、情報を取得します。 – netwisedev

答えて

0

は、おそらくこのような何かをしました。 別のページのデータにアクセスする場合は、データソースをリセットしてデータを再バインドする必要があります。

2ページ分のデータがグリッドにバインドされていないため、現在のページを2に設定するだけでは問題になりません。

+0

ありがとう - これはデータバインディングの問題ではない、私はポストバックの間にデータを取得することに言及している。私はページを正しく設定しました。2レコードを1つ選択してチェックボックスをオンにし、ボタンをクリックしてポストバックします。今私はどのチェックボックスがチェックされているかを判断しようとしており、どれもチェックプロパティがtrueに設定されていません。上のすべての情報は私のポストバックのハンドラを扱っています。 – netwisedev

関連する問題