2009-09-29 53 views
5

我终于深入挖掘动态数据(长期过期)。我注意到,当我查看网站时,在主表列表中,主键字段未显示。动态数据 - 如何显示列表中的主键字段

例如,我有一个包含两个字段的状态码的表。

StatusCode int identity Primary Key 
StatusCodeDescription varchar(25) 

在我的网站的StatusCodes/List.aspx页面上,只有StatusCodeDescription显示。

我意识到,我不能编辑的主键,但我想显示它。动态数据可能吗?

我可以自己想想一些解决方法,并且诚实地说,我可以深入挖掘文档以便自己找到它,但我希望有更多经验的人知道答案,并且可以节省我一些时间。链接到适当的文档甚至会很好。

回答

6

花了大部分时间研究后,我有另一个可能更“正确”的答案。从我所看到的,这是在每个表的基础上(这意味着你必须以每桌做一次)

使用ScaffoldColumn属性:

我延长自动为表生成的类(StatusCodes)使用部分类如下:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.DynamicData; 
using System.ComponentModel.DataAnnotations; 

namespace ScholarshipAdmin 
{ 
    [MetadataType(typeof(StatusCodesMetaData))] 
    public partial class StatusCodes 
    { 

    } 

    public class StatusCodesMetaData 
    { 
     [ScaffoldColumn(true)] 
     public object StatusCode; 
    } 
} 
+0

你使用动态数据吗?我发现它疯了!这是我需要做的第一件事! (显示PRI键)当他们要求我认为我疯了时,我无法显示它 – 2009-10-10 04:39:05

+0

不,我没有用很多(但)。当我发布这个问题时,我正在使用动态数据开展我的第一个项目。 但是,我打算在更合适的地方使用它。主要针对管理网站,或者快速和肮脏的CRUD应用程序。即使在我目前的项目中,大部分工作都是使用更多标准的Asp.Net表单完成的。在网站上完成的工作只有十分之一将通过动态数据网站完成。这可能是为什么赞赏让它快速启动。 – David 2009-10-10 05:09:20

+0

@Scott Kramer - 更新:我现在在大多数项目中使用动态数据,至少部分工作。如果我正在搞清楚,它会更友好,更容易定制。 – David 2010-07-28 20:01:34

0

我自己找到了一个可能的答案。我会张贴这个以防别人在未来寻找答案。请注意,这只有在表格全部具有一列主键时才起作用。

我还会在这里提出这个问题,以防其他人有一个更好,更简单的答案,可以处理具有多个主键的表。我宁愿选择别人的答案,而不是我自己的答案。

在List.aspx中,我向GridView1添加了以下内容。

<asp:TemplateField> 
    <HeaderTemplate> 
     <%# table.PrimaryKeyColumns[0].Name %> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <%# DataBinder.Eval(Container.DataItem, table.PrimaryKeyColumns[0].Name) %> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

一个主键?这不是主键的定义吗? – 2009-09-29 13:47:17

+1

抱歉 - 由于主键可以包含多个列,所以编辑它可以读取“一列主键”而不是“一个主键”,这就是我的意思。不过谢谢您的提问! – David 2009-09-29 13:50:02

相关问题