黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

將Timer控件用作UpdatePanel的觸發(fā)器

系統(tǒng) 2612 0

本文英文原版及代碼下載:

http://mattberseth.com/blog/2007/08/using_the_ajax_timer_control_a.html

將Timer控件用作UpdatePanel的觸發(fā)器

將Timer控件用作UpdatePanel的觸發(fā)器

ASP.NET AJAX Timer概述

ASP.NET AJAX Timer控件每隔特定的時(shí)間間隔執(zhí)行一次頁(yè)面回傳,它有一個(gè) Interval屬性來(lái)定義時(shí)間間隔.當(dāng)“到點(diǎn)”時(shí)就在服務(wù)器端觸發(fā)Timer的Tick事件. 如果你希望整個(gè)頁(yè)面回傳(full postback)的話,你只需將Timer控件放在頁(yè)面上,就像其它控件一樣。但如果你希望Timer觸發(fā)局部回傳,你有2種選擇: 1.將Timer控件放在UpdatePanel控件里 2.將Timer控件放在UpdatePanel控件外,再明白地將其注冊(cè)為一個(gè)AsyncPostBackTrigger,另外,可以在Timer的Tick事件處理器里修改Timer屬性(主要是Enabled 和 Elapsed),如果有必要的話你可以在運(yùn)行的時(shí)候修改這些值.把Timer添加到頁(yè)面后,我們還要考慮使用Timer的一些其它的事情.

AJAX Timer Considerations

1.把Timer控件放在UpdatePanel的里面或者外面時(shí),其行為稍有不同。

Timer控件放在頁(yè)面的什么地方將決定Elapsed值是如何計(jì)算的.如果 Timer放置在UpdatePanel外,當(dāng)一個(gè)局部回傳執(zhí)行時(shí)它繼續(xù)運(yùn)行。所 以,假如Elapsed設(shè)置為5秒,而局部回傳執(zhí)行了3秒,那么當(dāng)局部回傳執(zhí)行完畢2秒后就會(huì)觸發(fā)timer控件;而當(dāng)Timer控件放置在一個(gè)UpdatePanel內(nèi)部時(shí),當(dāng)回傳執(zhí)行時(shí)Timer就停止運(yùn)行,直到回傳執(zhí)行完畢后才運(yùn)行.

2.將Elapsed屬性的值設(shè)置的足夠大,以便Tick事件處理器有足夠的事件完成執(zhí)行.

由于放置在UpdatePanel控件外的Timer控件在局部回傳處于執(zhí)行狀態(tài)時(shí)仍在運(yùn)行,如果Timer控件“到點(diǎn)”了而局部回傳還沒(méi)有執(zhí)行完畢,那么當(dāng)前的執(zhí)行請(qǐng)求將會(huì)被取消而執(zhí)行一個(gè)新的請(qǐng)求.這是你所不愿看到的.

3.當(dāng)不再需要Timer時(shí)將其關(guān)閉

Timer控件將一直運(yùn)行直到用戶導(dǎo)航到其它頁(yè)面或通過(guò)編程的方式將其Enabled屬性設(shè)置為'false'.如果你有辦法確定不再需要Timer控件了,將其關(guān)閉即可.如上圖,當(dāng)所有操作的狀態(tài)為'Complete'時(shí),我們用不著再使用Timer了.


Implementation(執(zhí)行)

下面是UpdatePanel的聲明代碼,注意它包含了GridView和Timer控件:

<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<%--Typical GridView--%>
<asp:GridView
ID="gvOperations" runat="server"
GridLines="None" Width="100%"
AllowSorting="true" DataSourceID="odsOperations"
OnRowDataBound="GvOperations_RowDataBound">
<AlternatingRowStyle BackColor="aliceBlue" />
<HeaderStyle HorizontalAlign="Left" />
</asp:GridView>
<%--The Timer that causes the partial postback--%>
<asp:Timer runat="server" Interval="1500" OnTick="Timer_Tick" />
</ContentTemplate>
</asp:UpdatePanel>

下面是Timer的OnTick事件處理器,它依照Waiting -> Running -> Complete的狀態(tài)調(diào)用UpdateStatus.特別的我們還可以調(diào)用DataBind對(duì)GridView進(jìn)行重新綁定以查看最新的情況.

private void Timer_Tick(object sender, EventArgs args)
{
// update the data (only here for demo purposes)
if (DateTime.Now.Millisecond % 2 == 0)
{
UpdateStatus("Waiting", "Running");
}

if (DateTime.Now.Millisecond % 3 == 0)
{
UpdateStatus("Running", "Complete");
}

// refresh the grid
this.gvOperations.DataBind();
}

就是這樣的,祝編程愉快!

將Timer控件用作UpdatePanel的觸發(fā)器


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論