2011-03-11 89 views
4

在我的自定义窗体上我想显示一个自定义的Guid字段。Sharepoint Guidfield - 如何在前端显示它并在代码中设置它的值?

我经由特征以通常的方式产生的场:

<Field ID="88813c02-799b-4fc8-8ed8-72fe668e257c" Type="Guid" 
               Name="myGuid" 
               StaticName="myGuid" 
               DisplayName="My Guid" /> 

此字段我想要经由第一代码和显示的形式进行设置。在窗体上我有以下控制(仅供参考我还包括一个标题字段):

<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

回答

8

GuidField值不重写财产BaseFieldControl的Value这个属性总是返回null,没有这个领域的控制设定。 GuidField的默认实现没有任何DisplayTemplates,并且如果您将此字段控件放置在自定义或甚至标准表单上 - 字段将不会呈现用于设置值的任何html元素。您应该手动设置的字段的值。要设置自定义值使用ItemFieldValue:

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

或只是

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

如果你想要编辑的GUID UI形式(但在大多数情况下,它是没有必要的)写的小自定义字段控件或尝试搜索codeplex(因为我知道没有开箱即用的解决方案)。

+1

会喜欢给你更多upvotes。完美的解释! – 2011-03-11 17:25:57

+0

+1对于moontear的额外upvote。 – 2011-03-11 19:38:12

+0

谢谢你们。很高兴帮助你。 – Ilya 2011-03-12 14:51:34

相关问题