- PR -

ASP.NET Response.Write後の移動について

1
投稿者投稿内容
まくら
会議室デビュー日: 2006/02/21
投稿数: 8
投稿日時: 2006-02-21 17:22
ASPXファイルに
1.XXXXXXXXXX
・・・
10.XXXXXXXX
の項目が記載されている状態でResponse.Writeメソッドから項目を追加した場合に
追加された項目がブラウザ上部に来るようにしたいのですが良い解決案はないでしょうか?

項目追加後、現在ブラウザ上で
1.XXXXXXXXXX(ブラウザの上部)
・・・
10.XXXXXXXX
11.XXXXXXXX
・・・   (多すぎて隠れる)

と表示されてしまいます。
これを
1.XXXXXXXXXX(ブラウザの上部で隠れる)
・・・
10.XXXXXXXX
11.XXXXXXXX(ブラウザ上部に表示)
・・・
としたいのです。

よろしくお願いいたします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2006-02-21 17:35
回答ではありませんが、Response.Writeを使用している理由はなんでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-21 17:46
勝手に深読みして出た回答ですが、
リテラル コントロールとかで解決しませんかね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まくら
会議室デビュー日: 2006/02/21
投稿数: 8
投稿日時: 2006-02-21 19:01
>回答ではありませんが、Response.Writeを使用している理由はなんでしょうか?
以前の情報を残したいためです。

感じとしましては、このようなソースになっています。

int intLastHeight;

// 結果追加ボタン押下
private void Button_Result_Click(object sender, System.EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder("");
// 検索処理
for(int i = 1 ; i <= intRecordCount ; i++)
{
sb.Append("<DIV style=\"DISPLAY: inline; Z-INDEX: 104; LEFT: 50px; WIDTH: 70px; POSITION: absolute; TOP: " + (intLastHeight + i * 24) + "px; HEIGHT: 15px\"ms_positioning=\"FlowLayout\">" + "結果レコードi" + "</DIV>");
}
Response.Write(sb);
}

囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-21 19:10
クライアントにレスポンスを返したときに、ブラウザに自動でスクロールさせたいということでしょうか。

ページ途中への URL にリダイレクトさせるとか。
_________________
囚人のジレンマな日々
まくら
会議室デビュー日: 2006/02/21
投稿数: 8
投稿日時: 2006-02-21 20:28
>クライアントにレスポンスを返したときに、ブラウザに自動でスクロールさせたいということでしょうか。

はい、その通りです。

>ページ途中への URL にリダイレクトさせるとか。
以下のようにしてみましたが、Writeされる前のページが表示されるようです。

private void Button1_Click(object sender, System.EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder("");
for(int i = 5 ; i <= 50 ; i++)
{
sb.Append("<DIV style=\"DISPLAY: inline; Z-INDEX: 104; LEFT: 8px; WIDTH: 70px; POSITION: absolute; TOP: " + (8 + i * 24) + "px; HEIGHT: 15px\"ms_positioning=\"FlowLayout\"><a name=\"heading:" + i + "\">" + i + ".test" + i + "</DIV>");
}
Response.Write(sb);
Response.Redirect("#heading:0");
}
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-22 21:56
response.write ではなく、Page.RegisterClientScriptBlock または Page.RegisertStartupScript を使いましょう(メソッド名あってる?)

とりあえず、書き直し前。
http://quick-tips.hp.infoseek.co.jp/asp.net/tip.html
「ポストバックが発生したときに、表示していた位置を再表示させる」
※バリデータを使っていると、これでは機能しません。


SmartNavigation を使うなら、Response.Write を完全に消去してください。こいつが HTML を崩すので、SmartNavigation (で使っている DHTML)が機能しません。

〆 written by Jitta@わんくま同盟 on 2006/02/22
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-23 01:42
河端善博 大先生のこれはいかがでしょう?

  PageScrollManager : ASP.NET のスクロールを制御するコントロール

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)