使用介面來統一控制項的取值 賦值和初始化

2021-09-05 21:10:44 字數 2687 閱讀 5843

這裡說的控制項主要指的是文字框、下拉列表框這一類的控制項,使用者使用這些控制項輸入資料,然後我們需要提取這些資料進行處理。但是不同的控制項有不同的取值方式,比如文字框要用text,下拉列表框是selectedvalue (當然還有其他的方法),checkboxlist也是selectedvalue,但是這個只能獲取第乙個選項,如果是選擇了多個選項,他只能返回第乙個被選中的選項。可能您覺得這個沒什麼的呀,很正常呀。

是呀,只不過我比較懶,尤其在寫表單控制項的時候,如何取值就是乙個大問題了。以前用很笨的方法,用case乙個乙個的判斷,**寫起來很長也不便於擴充套件。後來學習了介面,發現可以定乙個介面來「統一」這些控制項的取值問題,而且還可以擴充套件。

【介面定義】

public

inte***ce

icontrolhelp

//properties

//////

返回控制項的型別 "201":文字框

///

string

controlkind 

//函式

//////

根據kind獲取控制項的某個屬性的值

///

///取值方式

///string

getcontrolvalue(

string

kind);

//////

根據kind設定控制項的預設值

///

///賦值方式

///值

void

setcontrolvalue(

string

kind, 

string

value);

//////

通過控制項的描述資訊,進行自我描述。比如設定maxlength 等。

///

///字段資訊

///資料訪問函式庫

///true:表單控制項;false:查詢控制項

void

showme(nature.webcontrols.baseinfo.columnsinfoform info, nature.data.dataaccesslibrary dal,

bool

isform);}

【checkboxlist的實現**】(其他的控制項就省略了。)

public

class

mycheckboxlist:checkboxlist , icontrolhelp

set}

#endregion

#region

getcontrolvalue

//////

返回 ///

///取值的方式

///public

string

getcontrolvalue(

string

kind)

}#endregion

#region

setcontrolvalue

//////

//////

///public

void

setcontrolvalue(

string

value, 

string

kind)

}#endregion

#region

controlkind

//////

實現介面

///[category(

"預設值

"), bindable(

true

), description(

"獲取控制項類別")

]public

string

controlkind

}#endregion

//////

自我描述

//////

配置資訊

///資料訪問函式庫的例項

///true:表單控制項;false:查詢控制項

public

virtual

void

showme(baseinfo.columnsinfoform colinfo, nature.data.dataaccesslibrary dal, 

bool

isform)

}this

.repeatcolumns =3

;this

.repeatdirection 

=repeatdirection.horizontal;

}#endregion}

【使用**】

icontrolhelp ctrlhelp;

foreach

(webcontrol ctrl 

inthis

.pnladduser.controls)

比如我們把控制項都放在了乙個panel裡面,那麼我們就可以用遍歷一下,把控制項的值都取出來了。

這個對於表單控制項還是很重要的,當然了也許對於您來說一點用處都沒有。我這裡也只是把我的想法寫一下,也許能給一些人提醒一下呢。我覺得寫程式,思路更重要。

其實常用的控制項並不多,也就這麼幾個,如果不夠的話,還可以隨時擴充套件。 介面裡的showme是給分頁控制項用的,baseinfo.columnsinfoform 也是表單控制項裡的乙個重要元素,是用來存放字段資訊的。

Jquery對一些常用控制項的取值 賦值

文字框,文字區域 textbox var str txt val txt val set lbl value text id attr value 清空內容 text id attr value test 填充內容 lable var str lbl text lbl text set lbl va...

關於在Java使用反射對屬性取值和賦值的效能問題。

最近在使用因為受不了hibernate的各種問題,自己用jdbc在做乙個簡單的orm框架 既然涉及到orm框架,肯定少不了使用反射對bean進行賦值。我最初是參考struts2的ioc,使用set 和get 進行賦值取值。但是後來發現,直接對屬性賦值的效能更加好。下面賦上我的測試 我對每行關鍵 做了...

WPF和Winform的一些介面控制項 md

devexpress telerik modern ui for wpf modernwpf extended wpf toolkit community edition modern ui metro charts for windows 8,wpf,silverlight wpf toolkit...