日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

使用Ajax后,原來導(dǎo)出功能失敗的解決方法_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:ASP.NET蔚昜璃唗蹈趙傖Binary揣湔祫DB or File
郔輪衄?婓枒蹦涴跺恀枙..苤萊竭屾?zhèn)`涴跺陲昹..憩善厙繚奻梑賸珨虳訧埭..諒湮模?睡蔚昜璃唗蹈趙傖Binary Data..?綴揣湔善訧蹋踱麼紫黓孬.. 絞?褫眕唗蹈趙..憩珨隅褫眕毀唗蹈趙賸...?妗唗蹈趙跡宒

問題描述:我們的產(chǎn)品在Ajax后(使用微軟的UpdatePanel),其中的導(dǎo)出功能出現(xiàn)錯誤。因為導(dǎo)出功能使用了Response直接輸出內(nèi)容,而Ajax的異步方式對此不能解析導(dǎo)致出現(xiàn)錯誤。

解決過程:在網(wǎng)上找了一下,可以使用這個 http://forums.microsoft.com/china/ShowPost.aspx?PostID=2732578&SiteID=15 的方法來解決。但是,如果你的按鈕時動態(tài)創(chuàng)建的,或者在模板中,這個帖子的方法也不能解決問題。 這個里面的內(nèi)容雖然沒有能解決我的問題,但是給了我一個思路,既然不能使用Ajax的方式來請求,那么就使用PostBack的方式。

解決方法:

以下為引用的內(nèi)容:

1、原來的導(dǎo)出按鈕增加 OnClientClick事件。
btnExport.OnClientClick = "return AutoForm_Export('PostBackEventTarget_IsExport');";
2、客戶端增加javascript函數(shù)AutoForm_Export。
function AutoForm_Export(postBackEventTarget)
{
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(postBackEventTarget, "", true, "", "", false, true)) ;
return false;
}
3、在服務(wù)器端根據(jù)Request["__EVENTTARGET"] 來判斷是否是導(dǎo)出事件。注意下面紅色字體的注釋
if (Page.Request["__EVENTTARGET"] != null)
{
bool isInAsyncPostBack = false;
ScriptManager sm = ScriptManager.GetCurrent(Page);
if (sm != null)
{
isInAsyncPostBack = sm.IsInAsyncPostBack;
}
if (isInAsyncPostBack )
{
/*
一定要進(jìn)行判斷是否是使用Axaj進(jìn)行異步請求,否則在點擊導(dǎo)出按鈕以后,再進(jìn)行其它Ajax請求, Page.Request["__EVENTTARGET"] 會保留原來的值,這樣就錯誤判斷了。
*/
_isExport = false

}
else
{
string postBackEventTarget = Page.Request["__EVENTTARGET"].ToString();
if (postBackEventTarget == "PostBackEventTarget_IsExport")
{
_isExport = true;
}
else
_isExport = false;
}
}
else
_isExport = false;


}

其他:暫時沒有找到其他的方法,如果您有更好的方法,請多多指教!

分享:在ASP.NET Atlas中調(diào)用Web Service
Atlas Framework中包含了對AJAX調(diào)用的封裝,讓您可以很方便的在客戶端通過JavaScript調(diào)用服務(wù)器端方法。在本篇文章中,我將解釋一下如何使用Atlas調(diào)用服務(wù)器端Web Service。 使用Atlas,我們

來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
相關(guān).Net教程