首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

2013-01-18 
sharepoint 2010 自定义字段开发(1) 创建一个简单的列表自定义字段在sharepoint 2010 中,最常用的就是对自

sharepoint 2010 自定义字段开发(1) 创建一个简单的列表自定义字段

在sharepoint 2010 中,最常用的就是对自定义列表或者文档库的使用,创建一个自定义列表或者文档库,添加一些需要的字段,sharepoint 2010 自带了很多不同类型的控件供字段使用,如下图

sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

很多特殊情况下,这些类型控件,不一定能满足我们的需求,所以我们需要扩展更多的控件类型。

1。创建一个framework 3.5的sharepoint project,名称为 CustomFieldTest

sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

添加一个sharepoint 映射文件夹,展开template,添加controltemplates和xml文件夹

选择controltemplates文件夹

选择xml文件夹sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

添加完成后,如下图

sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

2。在controltemplates文件夹下,添加一个新建项

sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

选择用户控件,名称为CustomFieldTest.TextBoxControlTemplate.ascx,点击添加

sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

3。在该文件中,添加一个renderingtemplate,Template中添加一个TextBox,在代码如下:

<sharepoint:renderingtemplate id="txtControlRenderingTemplate" runat="server">
      <Template>
          <asp:TextBox ID="txtControl" TextMode="SingleLine" runat="server"></asp:TextBox>
      </Template>
</sharepoint:renderingtemplate>

4。在xml文件夹中,添加一个xml文件,名称为 fldtypes_CustomFieldTest.xml,这里的名称有一定的规则,就是必须以fldtypes_开头,后面一般是用应用程序名称命名。

代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<FieldTypes>
  <FieldType>
    <Field Name="TypeName">TxtControl</Field>
    <Field Name="ParentType">Text</Field>
    <Field Name="TypeDisplayName">TxtControl</Field>
    <Field Name="TypeShortDescription">TxtControl</Field>
    <Field Name="UserCreatable">TRUE</Field>
    <Field Name="ShowInColumnTemplateCreate">TRUE</Field>
    <Field Name="FieldTypeClass">CustomFieldTest.TextBoxControl,CustomFieldTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e32063bdc8e93a7</Field>
  </FieldType>
</FieldTypes>

5。创建一个class文件,名称为TextBoxControl.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Web.UI.WebControls;
namespace CustomFieldTest
{
    public class TextBoxControl : SPFieldText
    {
         public TextBoxControl(SPFieldCollection fields, string fieldName)
            : base(fields, fieldName) { }

         public TextBoxControl(SPFieldCollection fields, string typeName, string displayName)
            : base(fields, typeName, displayName) { }

        public override BaseFieldControl FieldRenderingControl
        {
            get
            {
                BaseFieldControl ctr = new TextBoxControlFieldControl();
                ctr.FieldName = this.InternalName;
               
                return ctr;
            }
        }
    }
    public class TextBoxControlFieldControl : BaseFieldControl
    {
       
        protected override string DefaultTemplateName
        {
            get
            {
                return "txtControlRenderingTemplate";
            }
        }

        protected TextBox txtControl;

        protected override void CreateChildControls()
        {
            base.CreateChildControls();
            txtControl = (TextBox)TemplateContainer.FindControl("txtControl");
        }

      

        public override object Value
        {
            get
            {
                this.EnsureChildControls();
                return txtControl.Text;
            }
            set
            {
                this.EnsureChildControls();
                txtControl.Text = ItemFieldValue.ToString();
            }
        }
    }
}

6。部署该程序,我们打开一个自定义列表或者文档库,在创建栏那里,我们就能看到多了一个TextControl控件类型,填写一个test栏位sharepoint 2010 自定义字段开发(一) 创建一个简单的列表自定义字段

点击保存后,就在列表中多了一个叫txtControl的字段。

程序下载地址:http://download.csdn.net/download/cxx2325938/4977645

广州京微信息科技有限公司,微软sharepoint解决方案提供商。

 

热点排行