C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ページのPostについて


(過去ログ 44 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■23638 / inTopicNo.1)  ページのPostについて
  
□投稿者/ シン (9回)-(2008/08/19(Tue) 20:56:01)

分類:[.NET 全般] 

困っているので質問させていただきます。
GridViewで2つの動作をさせています。
1.ヘッダ行でソート
2.1つのセルをクリック→modalDialog起動→modalDialog終了→modalDialogの内容反映

2の実装を詳しく書くと、
modalDialogで内容更新をし、適応ボタンを押下すると、DBにその内容を反映し、Sessionにフラグを立ててmodalDialogを終了します。
modalDialogから戻ってきたら、GridViewのページでJavaScriptにより__doPostBackをコールし、
Page_LoadがコールされたらmodalDialogで立てたフラグをみて、立っていたらDBの情報を取得します。
そうすると、modalDialogで保存していたDB情報を取得できるため、modalDialogの内容がGridViewに反映されます。

ここで、1のヘッダ行のソートを行ったあとにIEの更新ボタンを押下すると、「情報を再送信しますか」のポップアップのあとにソートがされたGridViewが表示されるのにたいして、
2のmodalDialogの場合は、IEの更新ボタン押下で「情報を再送信しますか」ポップアップのあと、GridViewがmodalDialogの反映前の状態に戻ってしまいます。

明らかに__doPostBack('','')が原因だと思われます。
(ためしに、__doPostBack('','')ではなく、__doPostBack('GridView1','Sort$Header1')とすると(ヘッダに書かれていたものそのまま…)ソートされてしまいますが、modalDialogの内容は反映されています)

modalDialogから戻ってきたときにDBの内容を反映させたGridViewを表示したいのですが、
reloadも無理、__doPostBack('','')も無理だったので、行き詰っています。
Postする方法がわかりません。
ご存知の方がいらっしゃいましたら、ご教授をお願いします。

引用返信 編集キー/
■23641 / inTopicNo.2)  Re[1]: ページのPostについて
□投稿者/ Jitta on the way (155回)-(2008/08/19(Tue) 21:14:45)
No23638 (シン さん) に返信

> modalDialogで内容更新をし、適応ボタンを押下すると、DBにその内容を反映し、Sessionにフラグを立ててmodalDialogを終了します。
> modalDialogから戻ってきたら、GridViewのページでJavaScriptにより__doPostBackをコールし、
> Page_LoadがコールされたらmodalDialogで立てたフラグをみて、立っていたらDBの情報を取得します。
> そうすると、modalDialogで保存していたDB情報を取得できるため、modalDialogの内容がGridViewに反映されます。
>
> ここで、1のヘッダ行のソートを行ったあとにIEの更新ボタンを押下すると、「情報を再送信しますか」のポップアップのあとにソートがされたGridViewが表示されるのにたいして、
> 2のmodalDialogの場合は、IEの更新ボタン押下で「情報を再送信しますか」ポップアップのあと、GridViewがmodalDialogの反映前の状態に戻ってしまいます。

セッション情報がなくなって、modalDialog の内容を反映しないようになっている、のでは?



>
> 明らかに__doPostBack('','')が原因だと思われます。
> (ためしに、__doPostBack('','')ではなく、__doPostBack('GridView1','Sort$Header1')とすると(ヘッダに書かれていたものそのまま…)ソートされてしまいますが、modalDialogの内容は反映されています)

form を submit すると、どうなりますか?
引用返信 編集キー/
■23665 / inTopicNo.3)  Re[2]: ページのPostについて
□投稿者/ THREE-ONE (12回)-(2008/08/20(Wed) 10:30:19)
THREE-ONE さんの Web サイト
2008/08/20(Wed) 10:30:55 編集(投稿者)
2008/08/20(Wed) 10:30:53 編集(投稿者)

eventTarget が空なのがまずそうですね。
__doPostBack('', '') を直接書いていませんか?
GetPostBackClientEvent や GetPostBackEventReference で取得したスクリプトを呼び出すようにしたらどうでしょう?
もしくは __doPostBack を呼び出すのではなく、画面にダミーのリンクボタンを配置し、それをクリックするスクリプトを記述すれば、正常な PostBack が起こせます。
また、ダミーリンクボタンの Click イベント内に DB 内容を反映させる処理を書けば、処理記述の分散もできます。

引用返信 編集キー/
■23731 / inTopicNo.4)  Re[2]: ページのPostについて
□投稿者/ シン (10回)-(2008/08/21(Thu) 10:12:34)
Jitta on the wayさん
返信ありがとうございます。
formのsubmitをおこなってみましたがダメでした。
記述内容はform1.submit();です。

THREE-ONEさん
返信ありがとうございます。
__doPostBack('', '') を直接書いています。
ダミーのリンクボタンも考えたのですがうまく作れませんでした。
具体的には、ボタンを貼り付け、Visibleをfalseにしてしまうと、
ボタンがHiddenになるのではなく、<button>、もしくは<input type=button>がHTML内に存在していなくなってしまいます。
<input type=submit&hidden>みたいにできればいいのですが・・・

<input type=hidden value=0>
みたいなものをつくって、modalDialog決定後はvalue=1にして、常にDB取得処理を行えば解決するのかと思っていますが、
無理やりすぎる気がしてなるべくなら避けたいと思っています。

何かいい案がございましたら、宜しくお願いします

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -