您的位置:首页 > 产品设计 > UI/UE

【实现】表单控件的UI布局,实现方式

2008-08-10 10:05 441 查看
一、先说一下表单控件要实现的功能吧。

1、绘制UI,包括表格(Table)的绘制,也就是TR 、TD,TR是多少行,TD是有多少列;包括子控件的控件,TextBox、DropDownList、CheckBoxList等控件的加载、描述(宽度、最大字符数、填充item)等。

2、提取用户输入的数据,拼接参数化的SQL语句,给存储过程的参数赋值。

3、把存储过程的名称(参数化SQL)、存储过程的参数,通过“我的数据访问函数库”提交给数据库执行。

4、在显示数据和修改数据的时候,可以从数据库显示数据进行控件绑定。就是显示数据。

5、支持两种保存数据的方式:参数化SQL和存储过程。

6、可以向SQL Server2000、SQL Server2005、Access、Excel数据库里添加、修改数据,已测试。

7、可以向OleDb、ODBC连接的数据库添加、修改数据,只对Access、Excel进行了测试,没有测试其他的数据库。

8、表格的样式交给CSS来控制。

9、可以单列、也可以多列(通过属性来控制),在“多列”显示的时候,如果最后一行字段不够的话,可以自动补充TD。见图7。

表单控件的有点:

1、自动生成子控件(文本框、下拉列表框等)

2、当数据库的字段有变化的时候,只需要修改一个地方就可以搞定,不用到许多的地方修改。

3、不用做过多的测试,因为每一个项目、每一个添加、修改的地方都在测试这个控件,到最后就可以不用测试了。

二、说一下表格的绘制,也就是TR TD的处理。可以支持四种显示方式。

1、单列。所有的字段都在“一列”里面显示。图1

2、多列。 图2 、 图3

3、一个字段占多个TD。图4 、 图5

4、多个字段占用一个TD。图6

5、可以综合应用。图8

图片演示:

private void aa()

protected override void CreateChildControls()

public override void DataBind()

public void GetInputValue()

Code

private void AddParameter()

{

//根据配置信息添加存储过程(参数化SQL语句)需要的参数。

BaseColumnsInfo bInfo;

dal.LoadParameter();

foreach (KeyValuePair<int, BaseColumnsInfo> info in dic_BaseCols)

{

bInfo = (BaseColumnsInfo)info.Value;

switch (bInfo.ColType)

{

case "bigint":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, Int64.Parse(bInfo.DataValue));

break;

case "tinyint":

case "smallint":

case "int":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName , Int32.Parse(bInfo.DataValue));

break;

case "uniqueidentifier":

case "char":

case "nchar":

case "varchar":

case "nvarchar":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, bInfo.DataValue,bInfo.ColSize);

break;

case "text":

case "ntext":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, bInfo.DataValue);

break;

case "real":

case "float":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, double.Parse(bInfo.DataValue));

break;

case "numeric":

case "smallmoney":

case "money":

case "decimal":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, decimal.Parse(bInfo.DataValue));

break;

case "smalldatetime":

case "datetime":

dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, DateTime.Parse(bInfo.DataValue));

break;

default : //

//dal.ParameterMgr.AddNewParameter("@" + bInfo.ColSysName, Int32.Parse(bInfo.DataValue));

break;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: