|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。这是我的工具包里的一部分代码
部分办法已被我移值到我的框架往,做为实体的基类的默许办法。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Web.UI;
usingSystem.Reflection;
usingSystem.Web.UI.WebControls;
namespaceToolkit
{
///<summary>
///表的字段设置/获到值操纵类
///</summary>
publicclassTableValue
{
Objectentity;//实体对象
TypetypeInfo;//实体对象范例
///<summary>
///表的字段设置/获到值操纵类机关函数
///</summary>
///<paramname="entityInstance">传进表的实体</param>
publicTableValue(ObjectentityInstance)
{
entity=entityInstance;
typeInfo=entity.GetType();
}
///<summary>
///将实体的值设置到控件中
///</summary>
///<paramname="ct"></param>
publicvoidSetTo(Controlct)
{
stringpropName=ct.ID.Substring(3);
objectvalue=GetPropertyValue(propName);
switch(ct.GetType().Name)
{
case"TextBox":
((TextBox)ct).Text=Convert.ToString(value);
break;
case"Literal":
((Literal)ct).Text=Convert.ToString(value);
break;
case"Label":
((Label)ct).Text=Convert.ToString(value);
break;
case"DropDownList":
((DropDownList)ct).SelectedValue=Convert.ToString(value);
break;
case"CheckBox":
booltempValue;
if(Convert.ToString(value)=="1")
{
tempValue=true;
}
else
{
bool.TryParse(Convert.ToString(value),outtempValue);
}
((CheckBox)ct).Checked=tempValue;
break;
}
}
///<summary>
///将控件的值设置到实体中[默许从控件中主动猎取值]
///</summary>
///<paramname="ct">控件</param>
///<paramname="value">自界说值,若此值存在,则不从控件中猎取值</param>
publicvoidGetFrom(Controlct,objectvalue)
{
stringpropName=ct.ID.Substring(3);
if(value==null)
{
switch(ct.GetType().Name)
{
case"TextBox":
value=((TextBox)ct).Text.Trim();
break;
case"Literal":
value=((Literal)ct).Text;
break;
case"Label":
value=((Label)ct).Text;
break;
case"DropDownList":
value=((DropDownList)ct).SelectedValue;
break;
case"CheckBox":
value=((CheckBox)ct).Checked;
break;
}
}
SetPropertyValue(propName,value);
}
///<summary>
///将控件的值设置到实体中
///</summary>
///<paramname="ct">控件</param>
publicvoidGetFrom(Controlct)
{
GetFrom(ct,null);
}
///<summary>
///猎取对象指定属性的值
///</summary>
///<paramname="obj">对象</param>
///<paramname="propName">属性称号</param>
///<returns></returns>
privateobjectGetPropertyValue(stringpropName)
{
PropertyInfoprop=typeInfo.GetProperty(propName);
returnprop.GetValue(entity,null);
}
///<summary>
///设置对象指定属性的值
///</summary>
///<paramname="obj">对象</param>
///<paramname="propName">属性称号</param>
///<returns></returns>
privatevoidSetPropertyValue(stringpropName,objectvalue)
{
PropertyInfoprop=typeInfo.GetProperty(propName);
TypevalueType=null;
if(prop.PropertyType.Name.Contains("Nullable"))
{
valueType=Type.GetType(prop.PropertyType.FullName.Substring(19,prop.PropertyType.FullName.IndexOf(",")-19));
}
else
{
valueType=prop.PropertyType;
}
try
{
if(valueType.Name!="DateTime"||Convert.ToString(value)!="")
{
value=System.ComponentModel.TypeDescriptor.GetConverter(valueType).ConvertFrom(Convert.ToString(value));
prop.SetValue(entity,value,null);
}
}
catch
{
}
}
}
}
无论谁倒了对双方阵营的粉丝们也是有害无益。 |
|