2011-01-07 67 views
0

假设我有一个DetailsView,它绑定到一个SQLDataSource。基础表有两列,一个ID和一个值。使用DetailsView,某些列是关键列。我如何隐藏这些列?

在显示模式下,我只想显示值。当我将DetailsView切换到编辑模式时,我希望用户编辑该值,而不是查看或编辑该ID。使ID列不可见解决此问题,除非ID值未存储在DetailsView中,因此双向绑定不起作用,并且我无法更新相应的DB记录。

如何使用DetailsView实现双向数据绑定,但隐藏用户的ID列?

回答

0

可以使用templatefield在两种模式下显示标签,或者我认为该列是只读属性。要么会工作。

HTH。

0

做到这一点,正确的方法是

  1. 将是进入DetailsView控件的DataKeyNames属性键值的数据项。
  2. 为可编辑的第一个数据项创建模板列。在模板列中添加ASP:HiddenField控制和hiddenfield的值设置为关键项目的值:

    <asp:HiddenField runat="server" Value='<%# Eval("OwnerId") %>' />

+0

DataKeyNames中就足够,所以你不需要HiddenField。 – gbs 2011-01-07 18:02:23