丢失__EVENTTARGET _dopost Asp.net自带隐藏域和脚本的现象
生活随笔
收集整理的這篇文章主要介紹了
丢失__EVENTTARGET _dopost Asp.net自带隐藏域和脚本的现象
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
最近有一個程序突然出錯,
發(fā)現(xiàn)以前自己在程序中寫了一個Javascript函數(shù)來調(diào)用Asp.net自帶的__dopost函數(shù)
?function?deleteApplication(eventTarget,eventArgument)
?{
??if(window.confirm("are?you?sure?"))
????????__doPostBack(eventTarget,eventArgument);????
??
?}
結(jié)果,很吃驚的發(fā)現(xiàn),整個HTML代碼中沒有生成往常經(jīng)常看到的JS代碼
<script?language="javascript"?type="text/javascript">
<!--
????function?__doPostBack(eventTarget,?eventArgument)?{
????????var?theform;
????????if?(window.navigator.appName.toLowerCase().indexOf("microsoft")?>?-1)?{
????????????theform?=?document.Form1;
????????}
????????else?{
????????????theform?=?document.forms["Form1"];
????????}
????????theform.__EVENTTARGET.value?=?eventTarget.split("$").join(":");
????????theform.__EVENTARGUMENT.value?=?eventArgument;
????????theform.submit();
????}
//?-->
</script>
包括這倆個隱藏值也沒有出現(xiàn)
<input?type="hidden"?name="__EVENTTARGET"?value=""?/>
<input?type="hidden"?name="__EVENTARGUMENT"?value=""?/>
因為這些都是.Net自動生成的,因此,這里就有一個問題,什么情況下,Asp.net會自動產(chǎn)生這些代碼?
根據(jù)我的想法是,如果Asp.net在編譯時發(fā)現(xiàn)存在事件處理的控件的時候,它會自動產(chǎn)生這些代碼。
程序出錯,是因為在我的頁面中沒有一個支持事件的控件,
結(jié)果我的處理方式是加一個button,并設置它的style visiblity=hidden之后,
asp.net自動生成了上述代碼。
注意:如果設置button的visible=false,這種方法不會讓aspnet自動產(chǎn)生上述代碼的。
發(fā)現(xiàn)以前自己在程序中寫了一個Javascript函數(shù)來調(diào)用Asp.net自帶的__dopost函數(shù)
?function?deleteApplication(eventTarget,eventArgument)
?{
??if(window.confirm("are?you?sure?"))
????????__doPostBack(eventTarget,eventArgument);????
??
?}
結(jié)果,很吃驚的發(fā)現(xiàn),整個HTML代碼中沒有生成往常經(jīng)常看到的JS代碼
<script?language="javascript"?type="text/javascript">
<!--
????function?__doPostBack(eventTarget,?eventArgument)?{
????????var?theform;
????????if?(window.navigator.appName.toLowerCase().indexOf("microsoft")?>?-1)?{
????????????theform?=?document.Form1;
????????}
????????else?{
????????????theform?=?document.forms["Form1"];
????????}
????????theform.__EVENTTARGET.value?=?eventTarget.split("$").join(":");
????????theform.__EVENTARGUMENT.value?=?eventArgument;
????????theform.submit();
????}
//?-->
</script>
包括這倆個隱藏值也沒有出現(xiàn)
<input?type="hidden"?name="__EVENTTARGET"?value=""?/>
<input?type="hidden"?name="__EVENTARGUMENT"?value=""?/>
因為這些都是.Net自動生成的,因此,這里就有一個問題,什么情況下,Asp.net會自動產(chǎn)生這些代碼?
根據(jù)我的想法是,如果Asp.net在編譯時發(fā)現(xiàn)存在事件處理的控件的時候,它會自動產(chǎn)生這些代碼。
程序出錯,是因為在我的頁面中沒有一個支持事件的控件,
結(jié)果我的處理方式是加一個button,并設置它的style visiblity=hidden之后,
asp.net自動生成了上述代碼。
注意:如果設置button的visible=false,這種方法不會讓aspnet自動產(chǎn)生上述代碼的。
轉(zhuǎn)載于:https://www.cnblogs.com/king_astar/archive/2005/11/04/268964.html
總結(jié)
以上是生活随笔為你收集整理的丢失__EVENTTARGET _dopost Asp.net自带隐藏域和脚本的现象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件 在线压缩 技术
- 下一篇: Oracle Enterprise Ma