ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前...
背景
當(dāng)數(shù)據(jù)量大、查詢條件復(fù)雜,多樣多的時(shí)候,我們可能需要單獨(dú)做一個(gè)查詢界面,當(dāng)用戶選擇設(shè)置了相關(guān)的查詢條件后,點(diǎn)擊【查詢】按鈕,系統(tǒng)就彈出一個(gè)新的頁面展示出根據(jù)條件查詢出的數(shù)據(jù)集。
然后,用戶每點(diǎn)【查詢】按鈕就彈出一個(gè)新的頁面展示出最新的查詢結(jié)果。
當(dāng)然,在較好的用戶體驗(yàn)下,我認(rèn)為不管用戶點(diǎn)擊了多少次【查詢】按鈕,系統(tǒng)應(yīng)該只彈出并有且只有一個(gè)頁面,這個(gè)頁面就是展示查詢結(jié)果的頁面了。并且這頁面還應(yīng)該顯示在窗口的最前面,如果用戶使用選項(xiàng)卡瀏覽器就以閃爍的形式提示用戶當(dāng)前的查詢結(jié)果已更新到最新。
?
解決方法
?
大家知道,在asp.net中直接設(shè)置form的action是沒有效果的,或者當(dāng)產(chǎn)生postback的時(shí)候可能會(huì)有一些意外的事情發(fā)生。如:
<form id="form1" runat="server" action="searchresult.aspx" >?
好,現(xiàn)在我們只能通過javascript動(dòng)態(tài)的設(shè)置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;
}
?
當(dāng)點(diǎn)擊【查詢】按鈕時(shí),就觸發(fā)FormSubmit方法,通過FormSubmit方法先保存form的屬性,然后再設(shè)置form的action以及target屬性,將target設(shè)置為查詢結(jié)果的頁面路徑,這樣可以保存永遠(yuǎn)只彈出一個(gè)頁面,而不是多個(gè)頁面。最后form表單提交后,將form的屬性還原。
?
保證查詢結(jié)果顯示在最前面或者提示用戶
在查詢結(jié)果頁面中,向body加入onload事件,具體如下:
<body onload="self.focus();">這樣就可以保證,當(dāng)頁面加載的時(shí)候焦點(diǎn)就在查詢結(jié)果頁面上。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/samlin/archive/2011/09/09/html-form-action-target.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 另一个程序正在使用此文件 进程无法访问
- 下一篇: Microsoft .NET:Micro