ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前...
背景
當數據量大、查詢條件復雜,多樣多的時候,我們可能需要單獨做一個查詢界面,當用戶選擇設置了相關的查詢條件后,點擊【查詢】按鈕,系統就彈出一個新的頁面展示出根據條件查詢出的數據集。
然后,用戶每點【查詢】按鈕就彈出一個新的頁面展示出最新的查詢結果。
當然,在較好的用戶體驗下,我認為不管用戶點擊了多少次【查詢】按鈕,系統應該只彈出并有且只有一個頁面,這個頁面就是展示查詢結果的頁面了。并且這頁面還應該顯示在窗口的最前面,如果用戶使用選項卡瀏覽器就以閃爍的形式提示用戶當前的查詢結果已更新到最新。
?
解決方法
?
大家知道,在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設置為查詢結果的頁面路徑,這樣可以保存永遠只彈出一個頁面,而不是多個頁面。最后form表單提交后,將form的屬性還原。
?
保證查詢結果顯示在最前面或者提示用戶
在查詢結果頁面中,向body加入onload事件,具體如下:
<body onload="self.focus();">這樣就可以保證,當頁面加載的時候焦點就在查詢結果頁面上。
?
?
轉載于:https://www.cnblogs.com/samlin/archive/2011/09/09/html-form-action-target.html
總結
以上是生活随笔為你收集整理的ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 另一个程序正在使用此文件 进程无法访问
- 下一篇: Microsoft .NET:Micro