ASP.NETクエリーページ設定formのactionプロパティは1ページのみポップアップされ、ページを一番前に設定するたびに

5668 ワード

原文:
ASP.NETクエリーページ設定formのactionプロパティは1ページのみポップアップされ、ページを一番前に設定するたびに
背景
データ量が多く、クエリー条件が複雑で、多様な場合、ユーザーが関連するクエリー条件を設定した後、「クエリー」ボタンをクリックすると、新しいページがポップアップされ、条件に基づいてクエリーされたデータセットが表示されます.
その後、ユーザーは「クエリー」ボタンをクリックするたびに、最新のクエリー結果を示す新しいページをポップアップします.
もちろん、より良いユーザー体験の下で、ユーザーが何度「クエリー」ボタンをクリックしても、システムは1つのページしかポップアップされず、1つのページしかないと思います.このページはクエリーの結果を示すページです.また、このページはウィンドウの一番前に表示され、ユーザーがタブブラウザを使用すると、ユーザーの現在のクエリー結果が最新に更新されたことを点滅させるようにプロンプトされます.
 
解決策
 
みんな知ってるasp.Netでformのactionを直接設定しても効果がないか、postbackが発生したときに意外なことが起こる可能性があります.次のようになります.
<form id="form1" runat="server" action="searchresult.aspx" >

 
はい、javascriptでformのactionとtarget属性を動的に設定するしかありません.具体的には、次のコードです.
function FormSubmit(){
var action = $('#form1').attr('action');
var target = $('#form1').attr('target');
$(
'#form1').attr('action','RetireeInfoSearchResult.aspx');
$(
'#form1').attr('target','RetireeInfoSearchResult.aspx');
var d = $('#form1').submit();
//alert(d);
$('#form1').attr('action',action);
$(
'#form1').attr('target',target);
return false;
}

 
[クエリー]ボタンをクリックすると、FormSubmitメソッドがトリガーされ、FormSubmitメソッドでformのプロパティを保存してからformのactionおよびtargetプロパティを設定し、targetをクエリー結果のページパスに設定することで、複数のページではなく永遠に1つのページだけをポップアップすることができます.最後にformフォームがコミットされたら、formのプロパティを復元します.
 
クエリーの結果が一番前に表示されるか、ユーザーにプロンプトが表示されることを保証します.
クエリー結果ページで、bodyにonloadイベントを追加します.具体的には、次のとおりです.
<body onload="self.focus();">

これにより、ページがロードされたときにクエリー結果ページにフォーカスすることが保証されます.