亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【Ext.Net學習筆記】03:Ext.Net DirectEvents用法詳解、DirectMethods用法詳解

2019-11-17 01:33:46
字體:
來源:轉載
供稿:網友

【Ext.Net學習筆記】03:Ext.Net DirectEvents用法詳解、DirectMethods用法詳解

Ext.Net通過DirectEvents進行服務器端異步的事件處理?!綞xt.Net學習筆記】02:Ext.Net用法概覽、Ext.Net MessageBus用法、Ext.Net布局中已經簡單的介紹了DirectEvents,今天將詳細的介紹一下DirectEvents。

DirectEvents異步執行服務器端事件

我們首先來看一下Ext.Net DirectEvents的一個最簡單用法,通過點擊按鈕觸發服務器端的事件處理方法,并在前臺彈出一個提示框。

<ext:Window runat="server" ID="win1"    Title="Ext.Net DirectEvents"    Width="300" Height="200">    <Buttons>        <ext:Button runat="server" ID="btnOK"            Text="確定" Icon="Accept"            OnDirectClick="btnOK_DirectClick">        </ext:Button>    </Buttons></ext:Window>

這里添加了OnDirectEvents事件,它的一個簡寫方式,完整的寫法如下:

<ext:Button runat="server" ID="btnOK"    Text="確定" Icon="Accept">    <DirectEvents>        <Click OnEvent="btnOK_DirectClick"></Click>    </DirectEvents></ext:Button>

事件處理方法如下:

PRotected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e){    X.MessageBox.Alert("提示", "按鈕被點擊").Show();}

編譯代碼并刷新頁面,點擊按鈕,我們會看到如下效果:

顯示Mask遮罩層

上面的代碼已經演示了如何使用DirectEvents執行服務器端的事件,DirectEvents是通過異步方式執行服務器端代碼的,那么,我們通常會希望在執行的時候客戶端顯示一個遮罩層,阻止用戶進行其他操作,這點Ext.Net已經為我們想到了。

<ext:Button runat="server" ID="btnOK"    Text="確定" Icon="Accept">    <DirectEvents>        <Click OnEvent="btnOK_DirectClick">            <EventMask ShowMask="true" Msg="正在處理..."></EventMask>        </Click>    </DirectEvents></ext:Button>

然后我們在服務器端事件處理方法中讓程序休息一下:

        protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e)        {            System.Threading.Thread.Sleep(3000);//將當期線程掛起3000毫秒,即3秒            X.MessageBox.Alert("提示", "按鈕被點擊").Show();        }

這樣當我們再點擊按鈕的時候,會看到如下效果:

為事件添加自定義參數

Ext.Net DirectEvents 還允許我們為事件添加自定義參數。

<ext:Button runat="server" ID="btnOK"    Text="確定" Icon="Accept">    <DirectEvents>        <Click OnEvent="btnOK_DirectClick">            <EventMask ShowMask="true" Msg="正在處理..."></EventMask>            <ExtraParams>                <ext:Parameter Name="name" Value="btnOK"></ext:Parameter>            </ExtraParams>        </Click>    </DirectEvents></ext:Button>

在這里,我們將傳給處理方法一個名稱為name的參數,看一下服務器端的處理:

protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e){    System.Threading.Thread.Sleep(3000);    string btnName = e.ExtraParams["name"];    X.MessageBox.Alert("提示", btnName + "被點擊").Show();}

在服務器端,我們通過e.ExtraParams來訪問這些參數。

處理服務器返回的數據

Ext.Net DirectEvents 可以通過添加一個客戶端回調方法來處理服務器返回的數據。

<ext:Button runat="server" ID="btnOK"    Text="確定" Icon="Accept">    <DirectEvents>        <Click OnEvent="btnOK_DirectClick" Success="fnSuccess">            <EventMask ShowMask="true" Msg="正在處理..."></EventMask>            <ExtraParams>                <ext:Parameter Name="name" Value="btnOK"></ext:Parameter>            </ExtraParams>        </Click>    </DirectEvents></ext:Button>

在配置中添加一個success配置,表示在執行成功以后調用fnSuccess方法,fnSuccess方法的定義如下:

function fnSuccess(response, result) {    alert(result.extraParamsResponse.data);}

接下來看看服務器端如何返回數據的:

        protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e)        {            e.ExtraParamsResponse.Add(new Ext.Net.Parameter("data", "abc"));        }

通過這樣的處理,我們就可以從服務器返回數據,并在客戶端通過js代碼進行處理了,代碼效果如下。

confirmation配置

confirmation配置是用來在觸發事件之前進行提示,有用戶決定是否提交服務器進行處理的。

它的用法很簡單,卻很實用。

<ext:Button runat="server" ID="btnOK"    Text="確定" Icon="Accept">    <DirectEvents>        <Click OnEvent="btnOK_DirectClick" Success="fnSuccess">            <EventMask ShowMask="true" Msg="正在處理..."></EventMask>            <ExtraParams>                <ext:Parameter Name="name" Value="btnOK"></ext:Parameter>            </ExtraParams>            <Confirmation ConfirmRequest="true"                Title="提示" Message="確定要提交服務器嗎?">            </Confirmation>        </Click>    </DirectEvents></ext:Button>

不需要進行多余的代碼處理,只要這兩行配置就可以完成在出發時間前進行提醒:

Ext.Net DirectEvents除了能夠在Ext.Net中很方便的使用之外,還可以結合asp.net控件、HTML控件進行使用。

在ASP.NET控件上面使用DirectEvents

我們在ASP.NET中實現無刷新的頁面請求的時候,通常會用到UpdatePanel,現在Ext.Net為我們提供了另外一種渠道:通過DirectEvents來實現無刷新的頁面請求。

<asp:Label runat="server">名稱</asp:Label><asp:TextBox runat="server" ID="txtName" /><asp:Button runat="server" ID="btnOK" Text="確定" />

首先,我在頁面放上一個文本框和按鈕,當我們點擊確定按鈕的時候,希望在后臺能夠取到文本框的值。

接下來才是見證奇跡的時刻:

<ext:ResourceManager runat="server">    <CustomDirectEvents>        <ext:DirectEvent Target="btnOK"            OnEvent="btnOK_DirectClick">        </ext:DirectEvent>    </CustomDirectEvents></ext:ResourceManager>

我們來配置一個DirectEvent,通過這個DirectEvent來執行服務器端的事件方法,我們來看看服務器端的代碼:

protected void btnOK_DirectClick(object sender, Ext.Net.DirectEventArgs e){    string name = this.txtName.Text;    X.MessageBox.Alert("提示", "按鈕被點擊,輸入框的值為:" + name).Show();}

通過這段代碼,我們會取到文本框輸入的值,并在客戶端彈出一個提示框,并且這個過程是無刷新的。效果如下:

在HTML控件上面使用DirectEvents

ASP.NET控件可以用,HTML控件同樣可以使用DirectEvents(真的是萬能哦)。來看看如何在HTML按鈕中使用DirectEvents吧,為了演示,我在上面頁面中的按鈕替換成HTML按鈕:

<input type="button" value="確定" id="htmlBtn" />

然后再ResourceManager節點中配置:

<ext:ResourceManager runat="server">    <CustomDirectEvents>        <ext:DirectEvent Target="htmlBtn"            OnEvent="btnOK_DirectClick">            </ext:DirectEvent>    </CustomDirectEvents></ext:ResourceManager>

這樣就完成了。當我們點擊這個HTML按鈕的時候,你會看到和上面一樣的效果。

DirectEvents調用WebService

DirectEvents除了可以異步執行頁面中的事件,還可以遠程調用WebService。

新建一個Web服務文件,文件名為ExtNetService。

    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = Wsiprofiles.BasicProfile1_1)]    [System.ComponentModel.ToolboxItem(false)]    public class ExtNetService : System.Web.Services.WebService    {        [WebMethod]        public DirectResponse GetServerTimeWindow()        {            new Window("Server time", Icon.Time)            {                ID = "MyWindow",                Html = DateTime.Now.ToString()            }.Render();            return new DirectResponse();        }    }

這是我們定義的Service程序,然后來配置DirectEvents:

<ext:ResourceManager runat="server">    <CustomDirectEvents>        <ext:DirectEvent Target="htmlBtn"            Url="ExtNetService.asmx/GetServerTimeWindow"            Method="POST"            Type="Load">        </ext:DirectEvent>    </CustomDirectEvents></ext:ResourceManager>

然后點擊htmlBtn按鈕,這個時候會打開一個來自服務器端的小窗口:

注意這個例子,如果你去跟蹤一下請求過程,你會發現這里其實是遠程的調用了這個WebService,這里和一般的URL請求是一樣的,因此DirectEvents一樣可以調用一般處理程序(.ashx)

DirectEvents調用一般處理程序(.ashx)

既然可以遠程調用一個WebService,那么遠程調用一個一般處理程序肯定是沒有問題的。

首先來看看一般處理程序的代碼:

public class ServerTimeHandler : IHttpHandler{    public void ProcessRequest(HttpContext context)    {        new Window("Server time", Icon.Time)        {            ID = "MyWindow",
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲www在线| 色老头一区二区三区在线观看| 亚洲国产精品久久久久秋霞不卡| 中文日韩电影网站| 日韩成人激情在线| 国产精品专区第二| 欧美日韩一区二区免费在线观看| 精品久久在线播放| 欧美激情视频给我| 成人在线播放av| 久久精品中文字幕电影| 精品久久久久久久久中文字幕| 一本一本久久a久久精品牛牛影视| www.日韩不卡电影av| 欧美大片欧美激情性色a∨久久| 日韩电影中文字幕av| 成人在线中文字幕| 88国产精品欧美一区二区三区| 日韩综合视频在线观看| 日韩av第一页| 国产视频精品va久久久久久| 亚洲色图欧美制服丝袜另类第一页| 亚洲自拍偷拍网址| 欧美老妇交乱视频| 久久综合久久美利坚合众国| 欧美成人免费播放| 日韩电影大全免费观看2023年上| 5252色成人免费视频| 777国产偷窥盗摄精品视频| 在线激情影院一区| 91亚洲精品在线观看| 亚洲精品国产成人| 成人黄色在线免费| 欧美精品videosex性欧美| 亚洲精品国产电影| 国产一区二区三区免费视频| 国产精品欧美激情| 国产91av在线| 日韩视频欧美视频| 亚洲a级在线播放观看| 日韩欧美国产黄色| 国产精品青草久久久久福利99| 成人看片人aa| 91精品国产99久久久久久| 91亚洲午夜在线| 欧美高清电影在线看| 亚洲人成网站免费播放| 久久成人av网站| 久久综合亚洲社区| 久久久成人精品| 亚洲精品在线观看www| 国产精品电影网站| 欧美人与性动交| 亚洲天堂网站在线观看视频| 国产激情久久久久| 国产精品自产拍在线观看中文| 日韩欧美在线一区| 国产亚洲欧美一区| 欧美性20hd另类| 日韩电影中文字幕一区| 国产精品成人观看视频国产奇米| 国产精品电影在线观看| 欧美日韩国产一区二区三区| 国产午夜精品全部视频播放| 狠狠躁夜夜躁人人爽天天天天97| 性亚洲最疯狂xxxx高清| 欧美在线视频a| 亚洲免费影视第一页| 久久精品电影网站| 一本大道香蕉久在线播放29| 国产欧美精品va在线观看| 国产亚洲欧美另类中文| 欧美性高潮在线| 国产不卡一区二区在线播放| 91精品国产91久久久久福利| 亚洲欧美另类国产| 97精品一区二区三区| 色爱av美腿丝袜综合粉嫩av| 亚洲色图第三页| 久久久久一本一区二区青青蜜月| 一区二区成人精品| 欧美成人免费一级人片100| 亚洲欧美在线免费观看| 国产亚洲激情视频在线| 97国产精品视频人人做人人爱| 性欧美激情精品| 午夜精品一区二区三区在线| 国产精品成人va在线观看| 日韩欧美在线视频| 亚洲精品不卡在线| 久久久免费精品视频| 北条麻妃一区二区在线观看| 91精品啪在线观看麻豆免费| 日韩欧美在线播放| 日韩精品极品在线观看| 亚洲性av在线| 91成人福利在线| 国产一区二区av| 91久热免费在线视频| 这里只有视频精品| 成人夜晚看av| 欧美激情二区三区| 国产成人精品久久二区二区91| 91精品国产91久久久久| 日韩av在线电影网| 国产日韩欧美一二三区| 精品人伦一区二区三区蜜桃网站| 国产精品劲爆视频| 中文字幕自拍vr一区二区三区| 中文字幕日韩专区| 疯狂蹂躏欧美一区二区精品| 九九热精品视频在线播放| 中文字幕免费国产精品| 欧美精品在线免费| 日韩av日韩在线观看| 蜜臀久久99精品久久久久久宅男| 午夜精品美女自拍福到在线| 日韩av在线直播| 日本一区二区在线免费播放| 亚洲视频在线观看网站| 欧美日韩另类视频| 成人日韩av在线| 亚洲成人激情小说| 精品久久久久久久久久久| 91九色视频在线| 日韩精品免费一线在线观看| 国产欧美va欧美va香蕉在| 九九热精品在线| 国产一区二区日韩精品欧美精品| 中文国产成人精品| 亚洲美女av在线| 乱亲女秽乱长久久久| 色综合久久精品亚洲国产| 国产精品久久久久久影视| 久久成人18免费网站| 亚洲国产精品va在看黑人| 亚洲一区二区三区四区在线播放| 久久人人爽国产| 亚洲欧美日韩精品久久亚洲区| 亚洲精品久久久久中文字幕二区| 欧美高跟鞋交xxxxhd| 91社影院在线观看| 久色乳综合思思在线视频| 这里只有精品丝袜| 欧美性极品少妇精品网站| 日韩欧美在线观看视频| 国产精品美女久久久免费| 青草青草久热精品视频在线网站| 欧美成年人视频网站| 欧美一级在线亚洲天堂| 欲色天天网综合久久| 久久香蕉频线观| 欧美专区在线观看| 亚洲 日韩 国产第一| 91精品久久久久久久久中文字幕| 欧美日韩精品国产| 亚洲一区二区三区毛片| 国产高清视频一区三区| 欧美日韩亚洲一区二| 国产成人一区三区| 日韩va亚洲va欧洲va国产| 欧美精品福利视频| 日韩在线视频免费观看高清中文| 亚洲无线码在线一区观看|