真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解析Asp.netAjax控件中的AutoComplete控件

如何解析Asp.net Ajax控件中的AutoComplete控件,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

從事IDC機房托管,服務(wù)器租用,云主機,雅安服務(wù)器托管,域名申請,CDN,網(wǎng)絡(luò)代維等服務(wù)。

Asp.net Ajax 1.0控件中的AjaxControlToolkit系列控件的發(fā)布給開發(fā)人員帶來了很多便利,但其中很多控件似乎并沒有我們想像的那么***。最近對這里面的AutoComplete控件用得較多,發(fā)現(xiàn)了它的幾個不足或錯誤之處:

1.在某些情況下會出現(xiàn)“two components with the same id”的錯誤;

2.容易導(dǎo)致在IE中出現(xiàn)“無法打開Internet站點,…,已終止操作”的問題;

3.即使用戶輸入了很多的字符,即使已經(jīng)沒有相匹配的結(jié)果,它仍然會調(diào)用服務(wù)端方法,試圖獲取相匹配的值,白白增加了服務(wù)器的負擔(dān);

4.自動完成列表的樣式不太好看;

5.服務(wù)端方法的簽名必須是:string[] GetCompletionList(string prefixText, int count),無法從客戶端取得其它需要的數(shù)據(jù)。這一點在一個頁面中有多個需要從不同數(shù)據(jù)源獲取數(shù)據(jù)的AutoComplete控件時尤其致命。

要解決這些問題,首先需要知道怎樣來修改相應(yīng)的代碼并使之在自己的應(yīng)用中生效。值得慶幸的是,Asp.net Ajax控件中AjaxControlToolkit系列控件是開源的,所以我們可以根據(jù)自己的需要來盡情修改。用VS2005打開AjaxControlToolkit解決方案,打開AutoComplete文件夾中的AutoCompleteBehavior.js文件,修改并重新編譯后,將生成的AjaxControlToolkit.dll文件更新到自己的項目引用中,即可應(yīng)用我們優(yōu)化和增強后的Asp.net Ajax控件之AutoComplete控件了。

那么,在Asp.net Ajax控件中具體需要修改哪些代碼呢?

針對***個問題,需要在AjaxControlToolkit.AutoCompleteBehavior.callBaseMethod(this, 'dispose');這一行之前加上:

if (this._popupBehavior) {      this._popupBehavior.dispose();      this._popupBehavior = null;  }

第二個問題,要將

document.body.appendChild(this._completionListElement);

這一行修改為

element.parentNode.appendChild(this._completionListElement);

第三個問題,需要在_onTimerTick方法中,為

if (text.trim().length < this._minimumPrefixLength)

這個判斷增加一個條件,變成:

if (text.trim().length < this._minimumPrefixLength || text.trim().length > 10)

,這就使得,當(dāng)用戶的輸入超過10個字符時,就不必向服務(wù)端調(diào)用讀取匹配值的方法了。

第四個問題,要調(diào)整自動完成列表的樣式,可以直接修改initializeCompletionList方法中的以下代碼:

completionListStyle.backgroundColor = this._textBackground;  completionListStyle.color = this._textColor;  completionListStyle.border = 'solid 1px buttonshadow';  completionListStyle.cursor = 'default';  completionListStyle.unselectable = 'unselectable';  completionListStyle.overflow = 'hidden';

,或者刪除這幾行,并添加:element.className = "completionList";然后在頁面上添加樣式類“completionList”的定義即可;

要解決***一個問題,應(yīng)該在

{ prefixText : this._currentPrefix, count: this._completionSetCount}

這一行中增加一個發(fā)給服務(wù)器的參數(shù),變?yōu)?

{ prefixText : this._currentPrefix, count: this._completionSetCount , srcId: this.get_element().getAttribute("srcid") }

從而,服務(wù)端的讀取自動完成列表項的方法簽名就可以寫成:

string[] GetCompletionList(string prefixText, int count ,string srcId)

這意味著,我們可以為需要應(yīng)用自動完成功能的文本框預(yù)先設(shè)置一個用于標(biāo)識其數(shù)據(jù)來源的標(biāo)識字符串,C#代碼如:tb.Attributes.Add("srcid", "xxx"); 然后,在GetCompletionList方法中就可以根據(jù)客戶端傳過來的這個參數(shù)值來有針對性地讀取數(shù)據(jù)了。

Asp.net Ajax控件之AutoComplete控件的一些變化就向你介紹到這里,希望對你認識Asp.net Ajax控件有所幫助。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


分享名稱:如何解析Asp.netAjax控件中的AutoComplete控件
標(biāo)題來源:http://weahome.cn/article/peccoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部