教你只用乙個Validator對多個控制項進行驗證

2022-01-18 11:19:03 字數 1271 閱讀 3671

這個技巧是非常有用。如果我們有多個控制項,我們只用乙個驗證控制項來驗證它 。這將減少頁面大小和改善效能,因為每個驗證控制項在客戶端都會被渲染成span,如果乙個頁面包含上百個控制項,就會使得頁面非常的龐大臃腫。

在這篇文章的demo中,動態建立的幾個textbox,我只使用乙個驗證控制項去驗證它們。

1.aspx頁面上:

**<

body

>

<

form 

id="form1"

runat

="server"

>

<

div>

<

asp:customvalidator 

id="customvalidator1"

runat

="server"

>

asp:customvalidator

>

<

asp:validationsummary 

id="validationsummary1"

runat

="server"

/>

div>

form

>

body

>

2.在服務端將驗證控制項和textbox的onfocus事件關聯起來:

**protected

void

page_load(

object

sender, eventargs e)}}

3.hookupcontrol函式如下:

**function

hookupcontrol(curobj, validatorclientid) 

4.客戶端的驗證函式如下:

**function

validatetextbox(sender, args) 

if(isnan(args.value)) 

if(number(args.value) 

<

100)  

}其實主要使用了validatorhookupcontrol(curobj, validationcontrol)的功能。

onfocus事件可以換成你相應的事件,validatetextbox函式也可以擴充套件等等。

鎖定程序只用乙個CPU

昨天除錯osg程式的時候很鬱悶啊,好像是osg有一些bug,我那個程式如果在多個cpu上執行的話就會出現一些莫名其妙的問題。我想可能是執行緒爭用的問題。我在任務管理器裡面將程式設定為只使用乙個cpu,問題就解決了,很奇怪。現在還沒有時間找什麼原因引起的,而每次除錯都要去設定cpu關係很麻煩。只好寫了...

只用乙個函式實現翻轉棧

給你乙個棧,請翻轉棧裡的元素 1,只能在函式裡定義常數級別的變數.2,不用考慮複雜度,指數級,階乘級複雜度都可以接受 3,除了基礎的主函式以及輸入外,關於演算法邏輯的函式只能用下面介面 函式介面為 void reverse stack int st int a st.top st.pop if st...

如何只用乙個陣列來實現三個棧

int stackpointer 用於追蹤棧頂元素的指標 void push int stacknum,int value throws exception 棧指標自增,然後更新棧頂元素的值 stackpointer stacknum buffer abstopofstack stacknum va...