這個技巧是非常有用。如果我們有多個控制項,我們只用乙個驗證控制項來驗證它 。這將減少頁面大小和改善效能,因為每個驗證控制項在客戶端都會被渲染成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...