【发布时间】:2010-04-20 18:21:53
【问题描述】:
我正在搜索有关在 asp.NET 动态站点中配置自己的 MetaData 的信息。
例如。我在 MS Sql Server 中有一个表,其结构如下所示:
CREATE TABLE [dbo].[someTable](
[id] [int] NOT NULL,
[pname] [nvarchar](20) NULL,
[FullName] [nvarchar](50) NULL,
[age] [int] NULL)
我有 2 个 Ms Sql 表(我已经创建),sysTables 和 sysColumns。
系统表:
ID sysTableName TableName TableDescription
1 | someTable |Persons |关于系统中人员的所有数据
sysColumns:
ID TableName sysColumnName ColumnName ColumnDesc ColumnType MUnit
1 |一些表 | sometable_pname|姓名 |角色名称(例如约翰)| nvarchar(20) |空
2 |一些表 | sometable_Fullname|全名 |角色名称(例如 John Black)| nvarchar(50) |空
3 |一些表 | sometable_age|年龄 |人年龄|整数 |空
我希望在 Details/Edit/Insert/List/ListDetails 页面中用作 MetaData sysColumns 和 sysTableData。因为,例如。在 DetailsPage fullName 中,不如 Full Name 漂亮。
一些想法,有可能吗?
谢谢
更新::
在列表页面中显示来自 sysTables(元数据表)的数据我已修改 <h2 class="DDSubHeader"><%= tableName%></h2>。
public string tableName;
protected void Page_Init(object sender, EventArgs e)
{
table = DynamicDataRouteHandler.GetRequestMetaTable(Context);
//added by me
uqsikDataContext sd=new uqsikDataContext();
tableName = sd.sysTables.Where(n => n.sysTableName == table.DisplayName).FirstOrDefault().TableName;
//end
GridView1.SetMetaTable(table, table.GetColumnValuesFromRoute(Context));
GridDataSource.EntityTypeName = table.EntityType.AssemblyQualifiedName;
if (table.EntityType != table.RootEntityType)
{
GridQueryExtender.Expressions.Add(new OfTypeExpression(table.EntityType));
}
}
那么,sysColums 呢?如何从我的 sysColumns 表中获取数据?
【问题讨论】:
标签: asp.net linq-to-sql dynamic-data asp.net-dynamic-data