UpdateProgress無效,無法顯示,沒有效果,js給你答案
當按鈕botton位於updatepannel的外面的時候,會導致UpdateProgress起不到作用!
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label" Width="204px"></asp:Label><br />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" Width="201px" />
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"
DisplayAfter="1">
<ProgressTemplate>
<p>
更新中......
</p>
</ProgressTemplate>
</asp:UpdateProgress>
執行,點選Button按鈕,發現"更新中..."欄位沒有出現,但是賦值正常。
難道使用triggers的呼叫外部控制元件來進行非同步傳輸,不會引發UpdateProgress?
後來在網上找到了解決方法:
在程式碼裡面加入如下js:
<script language="javascript" type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
var postBackElement;
function InitializeRequest(sender, args)
{
if (prm.get_isInAsyncPostBack())
{
args.set_cancel(true);
}
postBackElement = args.get_postBackElement();
if (postBackElement.id = 'Button1') {
$get('UpdateProgress1').style.display = 'block';
}
}
function EndRequest(sender, args)
{
if (postBackElement.id = 'Button1')
{
$get('UpdateProgress1').style.display = 'none';
}
}
</script>
然後執行正常,從上面的js可以看出,如果是triggers觸發的button事件,那麼progress控制元件的style.display始終都是none,在button_click事件觸發時,並沒有使progress的 style.display變成block。所以裡面的"更新中..."顯示不出來。
再如:UpdateProgress的外面有div包圍【divUpdateProgress】:
<div id="divUpdateProgress" style="position: absolute; right: 466px; top: 48px; height: 20px;">
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<div style="font-size: 12px; color: Blue; background-color: #FFFFD6; border: solid 1px blue;">
<img src="../Image/ajaxloader.gif" />
資料載入中,請稍候
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</div>
對應的js:
<script language="javascript" type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
var postBackElement;
function InitializeRequest(sender, args)
{
if (prm.get_isInAsyncPostBack())
{
args.set_cancel(true);
}
postBackElement = args.get_postBackElement();
if (postBackElement.id == '<%=btnSearch.ClientID %>' || postBackElement.id == '<%=btnSearchOnProj.ClientID %>')
{
$get('divUpdateProgress').style.display = 'block';
}
}
function EndRequest(sender, args)
{
if (postBackElement.id == '<%=btnSearch.ClientID %>' || postBackElement.id == '<%=btnSearchOnProj.ClientID %>')
{
$get('divUpdateProgress').style.display = 'none';
}
}
</script>
ps:謀事在人成事也在人,好好揣摩!
相關文章
- Eclipse無法編譯 build無效 沒有class檔案Eclipse編譯UI
- OpenCV imshow()之後沒有waitKey()無法顯示影象OpenCVAI
- 有庫存且沒有被保留,但顯示可保留量為0,無法保留
- Win10系統無法安裝字型顯示字型無效怎麼解決Win10
- 沒有為任何呼叫堆疊框架載入任何符號,無法顯示原始碼框架符號原始碼
- LINUX下正確安裝後,圖片、驗證碼等無法顯示,有沒有辦法解決?Linux
- 無法顯示您正在查詢的頁面,因為使用了無效的方法(http謂詞)。HTTP
- admin\index.jsp中的main.jsp無法顯示?IndexJSAI
- IE無法顯示.shtml格式網頁HTML網頁
- 有無後效性
- WinXP啟動無法顯示桌面,無法啟動IE,無法關機的解決方案
- 求助taomcat5.5無法顯示釋出到webapps中的專案無法顯示其檔案WebAPP
- Strategy Analytics:調查顯示49%的使用者無法想象沒有智慧音響的生活
- link/Extended dependency 無法顯示連線
- weblogic 左側的樹無法顯示Web
- petStore管理員的Rich Client無法顯示client
- 關於pycharm無法顯示tag標籤PyCharm
- img圖片無法顯示利用onerror事件顯示替代圖片Error事件
- Excel無法完全顯示超過11位數的數字?超簡單方法1秒教給你!Excel
- Windows 7工作列無法顯示電源圖示解析Windows
- Bootstrap3為何無法顯示Glyphicons圖示boot
- win10 無法識別顯示器怎麼辦 win10無法識別顯示器解決方法Win10
- 安裝 httprunner 失敗,無法顯示版本資訊HTTP
- 控制皮膚中的java無法正常顯示Java
- apache配置zabbix下setup.php無法顯示ApachePHP
- hosts引起hotmail登入頁面無法顯示AI
- Linux無法登入,顯示module is unknownLinux
- CAD 有些字型無法顯示的問題
- 網站顯示無法連線資料庫網站資料庫
- win10合併分割槽到c盤顯示包名稱無效怎麼辦?win10顯示包名稱無效解決方法Win10
- windows10安裝字型無效怎麼辦 win10安裝字型顯示字型無效解決方法WindowsWin10
- 給LESS增加語法顯示
- 移動無線(CMCC-EDU)無法顯示登陸介面怎麼辦
- ntpq無法查詢同步資訊,顯示The specified class was not found
- 成功解決github無法顯示圖片問題Github
- 為什麼flexigrid無法顯示資料Flex
- windows2003IE無法顯示flashWindows
- Oracle打補丁時無法正確顯示英文Oracle