SharePoint Guid字段 - 如何在前端显示它并在代码中设置其值?

4
在我的自定义表单中,我想显示一个自定义的Guid字段。
我通过功能创建了该字段的常规方式:
<Field ID="88813c02-799b-4fc8-8ed8-72fe668e257c" Type="Guid"
                                                 Name="myGuid"
                                                 StaticName="myGuid"
                                                 DisplayName="My Guid" />

我可以帮您进行翻译。这段内容涉及IT技术,您需要通过代码设置并在表单上显示此字段。对于表单,我有以下控件(仅供参考,还包括标题字段):
<SharePoint:GuidField runat="server" ID="myGuidField" FieldName="myGuid" />
<SharePoint:TextField runat="server" ID="myTitle" FieldName="Title" />

在常规的新建/编辑表单中,Guid字段不会显示 - 它只是空的。在自定义表单的代码后台中,我可以执行以下操作:

myTitle.Value = "Some Title Value"; 
string testValue = myTitle.Value; //-->"Some Title Value"

但是在尝试设置Guid字段的值时,却无法完成:

string anotherValue = myGuidField.Value; //--> null
Guid myGuid = new Guid("7f824c3f-4049-4034-a231-85291fce2680");
myGuidField.Value = myGuid;
string anotherValue = myGuidField.Value; //--> still null
//but myGuidField is seen as a "Microsoft.Sharepoint.WebControls.GuidField"

我无法通过编程设置Guid值,也无法仅显示Guid。

两个问题:

  1. 如何在表单上显示GuidField(它包含的GUID)?
  2. 如何设置GuidField的值?
1个回答

8

GuidField 不要覆盖 Value 属性,这个属性始终返回 null,并且没有为此字段控件设置任何内容。GuidField 的默认实现没有任何 DisplayTemplates,如果将此字段控件放置在自定义甚至标准表单上,则不会呈现任何 HTML 元素以设置值。您需要手动设置字段的值。要设置自定义值,请使用 ItemFieldValue:

myGuidField.ItemFieldValue = new Guid("7f824c3f-4049-4034-a231-85291fce2680");

或者只是
item["myGuid"] =  new Guid("7f824c3f-4049-4034-a231-85291fce2680"); 

如果你想在UI表单上编辑guid(但在大多数情况下不需要),可以编写小的自定义字段控件或尝试在Codeplex上搜索(据我所知,没有现成的解决方案)。

1
很想给你更多的赞。解释得非常好! - Dennis G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接