天天看點

Ext.Net學習筆記06:Ext.Net DirectEvents用方補充

上一篇中介紹了Ext.Net DirectEvents的詳細使用方法,包括傳遞和接收參數、顯示遮罩層、進行提示等。

Ext.Net DirectEvents除了能夠在Ext.Net中很友善的使用之外,還可以結合Asp.Net控件、HTML控件進行使用,今天要補充的就是這方面的内容。

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

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

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

ext:DirectEvent Target

ext:DirectEvent

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

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

ASP.NET控件可以用,HTML控件同樣可以使用DirectEvents(真的是萬能哦)。來看看如何在HTML按鈕中使用DirectEvents吧,為了示範,我在頁面中添加一個HTML按鈕:

然後再ResourceManager節點中配置:

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

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

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

然後點選htmlBtn按鈕,這個時候會打開一個來自伺服器端的小視窗:

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

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

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

然後,我們修改一下DirectEvents配置,将剛才的WebService連結調整一下,其他的不動:

運作程式以後,你會看到與調用WebService一樣的效果。

剛才在示範調用WebService和一般處理程式的時候,已經看到了如何生成Ext.Net控件,再看一下代碼:

注意,如果要Window顯示出來,就必須調用Render方法。

我們知道UpdatePanel的更新過程:首先向伺服器發送一個異步請求,然後伺服器進行重繪,将控件重新生成HTML代碼,并傳回給用戶端,最後,由UpdatePanel用戶端JS決定如何替換,達到更新頁面的效果。

那麼,通過DirectEvents一樣可以更新ASP.NET控件。

我們回到第一個例子,通過點選按鈕來得到文本框的值。我們在例子中已經完成了取值的過程,接下來我們希望為文本框指派:

this.txtName.Text = "www.qeefee.com"

這裡是标準的指派方式,如果在ASP.NET UpdatePanel中肯定可以完成我們想要的功能,但是在Ext.Net中并不行的,不信你可以試試……反正我是試過了。

那麼如何來更新ASP.NET控件呢?我來告訴你答案:

看到了吧,除了指派以外,我們還要顯示的調用Update方法。

需要說明一下,這個Update方法是Ext.Net中的靜态方法,要用它的時候你必須添加Ext.Net的引用。

太複雜的控制我沒有試過,希望以後有機會嘗試吧。

2021年9月 北京、西安兩地,高薪誠聘 .NET工程師,請私信聯系!

如果認為此文對您有幫助,别忘了支援一下哦!

聲明:本部落格原創文字隻代表本人工作中在某一時間内總結的觀點或結論,與本人所在機關沒有直接利益關系。轉載時請在文章頁面明顯位置給出原文連結。