我有一个简单的Grails应用程序,我想在一般的脚手架视图中隐藏一些列,以防止用户对其进行编辑,但在添加新项目时仍要强制指定它们。我研究了可能的限制,但似乎没有一个完全符合要求:
column display: false
从视图中隐藏该列,但将其隐藏在所有位置,包括添加视图的新项column editable: false
确实会阻止在编辑视图中对列进行编辑,但是添加新项时也无法对其进行定义(+一点也不隐藏)那么我应该如何解决呢?我希望仍然能够利用动态脚手架功能,但是似乎无法指定该列以使其不在常规视图中显示,但是在添加新内容时仍然可以强制执行。有什么方法可以指定要从哪个视图中隐藏该视图,而不是全部消失或全部消失?
答案 0 :(得分:1)
假设我们拥有以下域:
class Thing {
String userName
String firstName
Integer userId
static constraints = {}
}
我们不希望userName在编辑视图上可编辑,而是创建以下目录...
\views\thing\edit\userName
然后将一个名为_widget.gsp
的文件添加到上面的目录中,其中包含以下内容...
${value}
仅显示用户名的文本值。
至于索引视图,如果您可以轻松地隐藏字段,我不是100%。 我知道字段插件将按照域类定义中的顺序确定表中的前7个字段。因此,如果您有> 7个字段,则可以按顺序将要隐藏的字段设置为> 7,显然这里有很大的限制,您甚至可能没有8个字段,或者您可能希望隐藏多个字段... >
您可以对列表视图执行上述操作,但是创建一个名为\views\thing\index\userName
的目录,然后创建一个名为_displayWidget.gsp
的文件,其中没有任何内容,或者可能没有诸如“ Hidden”之类的文本,这仍会呈现列,但不显示任何值或您添加到文件的任何文本,同样也不是很好。