Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Sharepoint自定义字段_C#_.net_Sharepoint 2010 - Fatal编程技术网

C# Sharepoint自定义字段

C# Sharepoint自定义字段,c#,.net,sharepoint-2010,C#,.net,Sharepoint 2010,我已经创建了一个自定义字段类型,我认为没有错误,因为它很简单,但是字段框没有显示在表单中(参见图) .ascx文件: <SharePoint:RenderingTemplate ID="MyField" runat="server"> <Template> <asp:TextBox ID="TextField" MaxLength="255" runat="server" BackColor="Pink" Font-Bold="true" BorderSt

我已经创建了一个自定义字段类型,我认为没有错误,因为它很简单,但是字段框没有显示在表单中(参见图)

.ascx文件:

 <SharePoint:RenderingTemplate ID="MyField" runat="server">
 <Template>
 <asp:TextBox ID="TextField" MaxLength="255" runat="server" BackColor="Pink"
 Font-Bold="true" BorderStyle="Dotted" BorderColor="DarkBlue" TextMode="MultiLine" />
 </Template>
 </SharePoint:RenderingTemplate>
和控制文件:

namespace MyCustomField.CustomField
{
internal class MyCustomFieldControl : RichTextField
{
    protected override void CreateChildControls()
    {
        ControlMode = SPControlMode.Display;

        base.CreateChildControls();
    }

    protected override void RenderFieldForDisplay(HtmlTextWriter output)
    {
        var html = String.IsNullOrEmpty(Item[Field.InternalName] as string) ? "" : Item[Field.InternalName] as string;

        RenderHtmlForDisplay(output, html);
    }

    protected override string DefaultTemplateName
    {
        get
        {
            return "MyField"; 
        }
    } 
}
}

如您所见,文本框不显示。

看起来控件设置为仅为
SPControlMode.Display渲染。您的屏幕截图以
编辑
新建
模式显示

看起来您需要重写该方法


对于SharePoint相关的问题,您有哦,谢谢,我复制粘贴了这部分代码,不知道它是什么意思。非常感谢。
namespace MyCustomField.CustomField
{
internal class MyCustomFieldControl : RichTextField
{
    protected override void CreateChildControls()
    {
        ControlMode = SPControlMode.Display;

        base.CreateChildControls();
    }

    protected override void RenderFieldForDisplay(HtmlTextWriter output)
    {
        var html = String.IsNullOrEmpty(Item[Field.InternalName] as string) ? "" : Item[Field.InternalName] as string;

        RenderHtmlForDisplay(output, html);
    }

    protected override string DefaultTemplateName
    {
        get
        {
            return "MyField"; 
        }
    } 
}
}
protected override void RenderFieldForInput(HtmlTextWriter output)
{
    var html = String.IsNullOrEmpty(Item[Field.InternalName] as string) ? "" : Item[Field.InternalName] as string;

    RenderHtmlForDisplay(output, html);
}