日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]MSDN - 在客户端脚本中为 UpdateProgress 控件编程

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]MSDN - 在客户端脚本中为 UpdateProgress 控件编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文轉自: http://msdn.microsoft.com/zh-cn/library/bb386518.aspx

在本教程中,將通過編寫 ECMAScript (JavaScript) 代碼來擴展具有客戶端行為的 UpdateProgress 控件。
您的代碼將使用屬于 Microsoft AJAX Library 的一部分的 PageRequestManager 類。
在 UpdateProgress 控件中,您將添加一個使用戶能夠取消異步回發的按鈕。
作為此任務的一部分,您將使用客戶端腳本來顯示或隱藏進度消息。

在客戶端腳本中取消異步回發
最終代碼1:

Code
<%@?Page?Language="C#"?%>

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?
?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

<script?runat="server">
????protected?
void?Button1_Click(object?sender,?EventArgs?e)
????{
????????System.Threading.Thread.Sleep(
3000);
????????Label1.Text?
=?DateTime.Now.ToString();
????}
</script>

<html??>
<head?runat="server">
????
<title>UpdateProgress?Tutorial</title>
????
<style?type="text/css">
????#UpdatePanel1?
{
??????width
:200px;?height:100px;
??????border
:?1px?solid?gray;
????
}
????#UpdateProgress1?
{
??????width
:200px;?background-color:?#FFC080;
??????bottom
:?0%;?left:?0px;?position:?absolute;
????
}
????
</style>
</head>
<body>
????
<form?id="form1"?runat="server">
????
<div>
????????
<asp:ScriptManager?ID="ScriptManager1"?runat="server"/>
????????
<script?language="javascript"?type="text/javascript">
????????
<!--?
????????
var?prm?=?Sys.WebForms.PageRequestManager.getInstance();
????????
function?CancelAsyncPostBack()?{
????????????
if?(prm.get_isInAsyncPostBack())?{
??????????????prm.abortPostBack();
????????????}
????????}
????????
//?-->
????????</script>
????????
<asp:UpdatePanel?ID="UpdatePanel1"?runat="server">
????????????
<ContentTemplate>
????????????????
<asp:Label?ID="Label1"?runat="server"?Text="Panel?rendered."></asp:Label><br?/>
????????????????
<asp:Button?ID="Button2"?runat="server"?OnClick="Button1_Click"?Text="refresh"?/>
????????????
</ContentTemplate>
????????
</asp:UpdatePanel>

????
</div>
????????
<asp:UpdateProgress?ID="UpdateProgress1"?runat="server">
????????????
<ProgressTemplate>
????????????????Processing
????????????????
<input?id="Button2"?
???????????????????????type
="button"?
???????????????????????value
="cancel"?
???????????????????????onclick
="CancelAsyncPostBack()"?/>
????????????
</ProgressTemplate>
????????
</asp:UpdateProgress>
????
</form>
</body>
</html>

?

使用客戶端腳本顯示更新進度
在下列方案中,將不會自動顯示 UpdateProgress 控件:
UpdateProgress 控件與某個特定的更新面板相關聯,但異步回發是從一個未位于該更新面板內的控件引發的。

UpdateProgress 控件不與任何 UpdatePanel 控件相關聯,
并且異步回發不是從一個既不位于 UpdatePanel 內部也不是一個觸發器的控件引發。
例如,使用代碼執行更新。

下面的過程演示如何在異步回發并非來自關聯的 UpdatePanel 控件內部時顯示 UpdateProgress 控件。
此過程假定您已完成本教程的第一部分。

最終代碼2:

Code
<%@?Page?Language="C#"?%>

<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?
?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>

<script?runat="server">
????protected?
void?Button1_Click(object?sender,?EventArgs?e)
????{
????????System.Threading.Thread.Sleep(
3000);
????????Label1.Text?
=?DateTime.Now.ToString();
????}
????protected?
void?Panel1Trigger_Click(object?sender,?EventArgs?e)
????{
????????System.Threading.Thread.Sleep(
3000);
????????Label1.Text?
=?DateTime.Now.ToString()?+?"?-?trigger";
????}
</script>

<html??>
<head?id="Head1"?runat="server">
????
<title>UpdateProgress?Tutorial</title>
????
<style?type="text/css">
????#UpdatePanel1?
{
??????width
:200px;?height:100px;
??????border
:?1px?solid?gray;
????
}
????#UpdateProgress1?
{
??????width
:200px;?background-color:?#FFC080;
??????bottom
:?0%;?left:?0px;?position:?absolute;
????
}
????
</style>
</head>
<body>
????
<form?id="form1"?runat="server">
????
<div>
????????
<asp:ScriptManager?ID="ScriptManager1"?runat="server"?/>
????????
<script?language="javascript"?type="text/javascript">
????????
<!--?
????????
var?prm?=?Sys.WebForms.PageRequestManager.getInstance();
????????
function?CancelAsyncPostBack()?{
????????????
if?(prm.get_isInAsyncPostBack())?{
??????????????prm.abortPostBack();
????????????}
????????}
????????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?==?'Panel1Trigger')?{
????????????????$get(
'UpdateProgress1').style.display?=?'block';????????????????
????????????}
????????}
????????
function?EndRequest(sender,?args)?{
????????????
if?(postBackElement.id?==?'Panel1Trigger')?{
????????????????$get(
'UpdateProgress1').style.display?=?'none';
????????????}
????????}
????????
//?-->
????????</script>
????????
<asp:UpdatePanel?ID="UpdatePanel1"?runat="server">
????????????
<ContentTemplate>
????????????????
<asp:Label?ID="Label1"?runat="server"?Text="Panel?rendered."></asp:Label><br?/>
????????????????
<asp:Button?ID="Button1"?runat="server"?Text="refresh"?OnClick="Button1_Click"?/>
????????????
</ContentTemplate>
????????????
<Triggers>
????????????????
<asp:AsyncPostBackTrigger?ControlID="Panel1Trigger"?/>
????????????
</Triggers>
????????
</asp:UpdatePanel>
????????
<asp:Button?ID="Panel1Trigger"?runat="server"?Text="Trigger"?OnClick="Panel1Trigger_Click"?/>
????????
<asp:UpdateProgress?ID="UpdateProgress1"?runat="server"?AssociatedUpdatePanelID="UpdatePanel1">
????????????
<ProgressTemplate>
????????????????Processing
????????????????
<input?id="Button2"?
???????????????????????type
="button"?
???????????????????????value
="cancel"
???????????????????????onclick
="CancelAsyncPostBack()"?/>
????????????
</ProgressTemplate>
????????
</asp:UpdateProgress>

????
</div>
????
</form>
</body>
</html>

?

總結

以上是生活随笔為你收集整理的[转]MSDN - 在客户端脚本中为 UpdateProgress 控件编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。