SharePoint 2010 自定义 字段 类型--------三级互联(省县市)
来源:互联网 发布:淘宝睡衣模特小智慧 编辑:程序博客网 时间:2024/05/16 13:42
创建自定义类型分以下几个步骤:
第一步:添加SharePoint映射文件夹Xml,在Xml的文件名必须以fldtypes_开头,否则不能识别,为了更好的了解Xml里面的结构我们可以在服务器上打开,看一看系统是如何定义的。
第二步:开始省市定义联动,XML定义
View Code第三步:创建ProvinceCityControl 类文件,并继承 BaseFieldControl,省市的数据来源是另一张表
代码主要重载 protected override void CreateChildControls()
using System.Web.UI;using System.Web.UI.WebControls;using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;namespace SharePointProject_Custom_FieldsType_Controls.Controls{ public class ProvinceCityControl : BaseFieldControl { private DropDownList _ddlProvince; private DropDownList _ddlCity; private SPWeb _web; private SPListCollection _listCollection; private SPList _list; private SPQuery _query; private SPListItemCollection _listItemCollection; protected override void CreateChildControls() { if (this.ControlMode == SPControlMode.Display) { this.Controls.Add(new LiteralControl("" + this.Value)); } else { _ddlProvince = new DropDownList(); _ddlCity = new DropDownList(); using (_web = SPContext.Current.Web) { _listCollection = _web.Lists; _list = _listCollection.TryGetList(Consts.LIST_DICTIONARY); if (_list != null) { #region Province _query = new SPQuery(); _query.Query = string.Concat( "<Where>", "<Eq><FieldRef Name='Group_x003a_Title'/><Value Type='Lookup'>" + Consts.GROUP_PROVINCE + "</Value></Eq>", "</Where>" ); _query.ViewFields = string.Concat( "<FieldRef Name='DictionaryName'/>", "<FieldRef Name='Title'/>" ); _listItemCollection = _list.GetItems(_query); _ddlProvince.AutoPostBack = true; _ddlProvince.SelectedIndexChanged += new EventHandler(Province_SelectedIndexChanged); foreach (SPListItem item in _listItemCollection) { _ddlProvince.Items.Add(new ListItem(item["DictionaryName"].ToString(), item["Title"].ToString())); } #endregion #region City LoadCity(); #endregion } } this.Controls.Add(_ddlProvince); this.Controls.Add(new LiteralControl("-")); this.Controls.Add(_ddlCity); } } #region Province of autoPostBack void Province_SelectedIndexChanged(object sender,EventArgs e) { LoadCity(); } #endregion #region Load City void LoadCity() { _ddlCity.Items.Clear(); _query = new SPQuery(); _query.Query = string.Concat( "<Where><And>", "<Eq><FieldRef Name='Group_x003a_Title'/><Value Type='Lookup'>" + Consts.GROUP_CITY + "</Value></Eq>", "<BeginsWith><FieldRef Name='Title'/><Value Type='Text'>" + _ddlProvince.SelectedValue.ToString() + "</Value></BeginsWith>", "</And></Where>" ); _listItemCollection = _list.GetItems(_query); foreach (SPListItem item in _listItemCollection) { _ddlCity.Items.Add(new ListItem(item["DictionaryName"].ToString(), item["Title"].ToString())); } } #endregion public override object Value { get { return base.Value; } set { base.Value = value; } } }}
第四步:再创建一个类ProvinceCity ,并继承SPFieldText
using Microsoft.SharePoint;using Microsoft.SharePoint.WebControls;namespace SharePointProject_Custom_FieldsType_Controls.Controls{ public class ProvinceCity:SPFieldText { public ProvinceCity(SPFieldCollection fields, string fieldName) : base(fields, fieldName) { } public ProvinceCity(SPFieldCollection fields, string fieldType, string displayName) : base(fields, fieldType, displayName) { } public override BaseFieldControl FieldRenderingControl { get { BaseFieldControl fc = new ProvinceCityControl(); fc.FieldName = this.InternalName; return fc; } } }}
如果要设置默认值请Override DefaultValue,如果要验证格式是否正确 请Override GetValidatedString
第五步:部署查看效果第六步:创建栏查看效果
群:212099235
- SharePoint 2010 自定义 字段 类型--------三级互联(省县市)
- SharePoint 2010 自定义 字段 类型--------省市区联动
- 开发自定义字段类型 sharepoint
- sharepoint 2013 开发自定义字段类型说明
- SharePoint 2010 自定义字段开发
- SharePoint 2010 自定义字段开发
- SharePoint 2010 自定义字段"大写金额"开发
- sharepoint 创建自定义字段
- 自定义sharepoint文件上传字段
- sharepoint 2010 自定义字段开发(1) 创建一个简单的列表自定义字段
- 自定义列表字段类型(0)
- 自定义列表字段类型(1)
- 自定义列表字段类型(2)
- 自定义列表字段类型(3)
- 自定义字段(栏)类型
- django 自定义 字段类型
- 深入浅出SharePoint—字段类型定义
- SharePoint 2016 自定义城市和区域字段
- Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应
- JSON和JSONP,也许你会豁然开朗,含jQuery用例
- HTTP状态码
- busybox源码剖析(2)---pwd.c
- sgu 223 Little Kings 状态压缩dp
- SharePoint 2010 自定义 字段 类型--------三级互联(省县市)
- 暗时间
- Packets larger than max_allowed_packet are not allowed
- Node.Js
- delphi字符串操作函数一览
- uva131-The Psychic Poker Player(有超能力的纸牌玩家)
- SharePoint 2010 究竟需要占用多少服务器资源?
- java环境配置
- SharePoint 2010 和 Apple iPad(Ipad里使用sharepoint)