第一列字段名,第二列输入框这样的模板列怎么做?
我现在数据表中有这么三列数据:
第一列:英文字段名,第二列中文字段名,第三列字段类型
根据这些数据信息自动生成一个用户录入界面
第一列显示中文字段名,第二列显示输入框(根据字段类型显示是单行文本框,还是多行文本框等,并且,文本框的id为字段类型_英文字段名),怎么来设计模板?
id为字段类型_英文字段名的原因主要为了能根据字段名和字段类型来保存数据,请问我这样设计是否合理(主要想做一个通用的录入、修改程序,这样就不必为每个表一一设计录入、修改等程序)?
如果一个网站有很多表,你们是如何设计后台管理的,有没有弄一个通用的程序?
这样做有什么问题吗?
请高手谈谈经验!
------解决方案--------------------有做过,但不够灵活,后来不用了
------解决方案--------------------dataGrid
------解决方案--------------------用DetailsView控件直接绑定就可以
------解决方案--------------------datagrid模拟表
------解决方案--------------------if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[t_sys_FieldsDetail] ') and OBJECTPROPERTY(id, N 'IsUserTable ') = 1)
drop table [dbo].[t_sys_FieldsDetail]
GO
CREATE TABLE [dbo].[t_sys_FieldsDetail] (
[FId] [int] IDENTITY (1, 1) NOT NULL ,
[FTableName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FDescription] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[FAlias] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FCore] [char] (1) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FIndex] [int] NOT NULL ,
[FLinkName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[FLinkField] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[FDataType] [int] NULL ,
[FPrecision] [int] NULL ,
[FDefaultValue] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[FRequired] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[FReadOnly] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[FControls] [int] NULL ,
[FDictType] [int] NULL ,
[FVisible] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[FScale] [int] NULL ,
[FAlign] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[FWidth] [int] NULL ,
[FDescColor] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[FValueColor] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[FValidType] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[FValidation] [int] NULL ,
[FIsEvent] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[FEventType] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[FEvent] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[FDefault] [bit] NULL ,
[FDictTabName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
------解决方案--------------------帮顶..
------解决方案--------------------id是你服务端能识别的,在经过编译后传输给前台的话还会跟你包装的
这个id是客户端id
可以想象,如果你使用datagrid的模版并添加了textbox,如果没作特殊处理,那么每个textbox的id都是一样的默认都是textbox1,现在。net帮你作了,所以会出现那个名字
------解决方案--------------------楼上,怎么不让它出现这个名字?---什么名字啊?
还有个问题动态加载的textbox控件怎么没保存到VIEWSTATE中去呀,当我点击添加按钮,通过遍历textbox控件来获得用户添加的数据,发现居然找不到textbox控件,怎么办呀?
首先你得清楚页面的生命周期,建议你看下这个系列的文章
http://www.cnblogs.com/cathsfz/archive/2006/11/19/564929.html