Sharepoint 2010的TextField、LookupField、NoteField、RichTextField、SaveButton控件详解

以前做项目对Sharepoint列表的操作用三种对象模型进行操作,但是在Designer上看到了以Sharepoint:开始的控件,就决定研究一下,深入研究才发现这样的控件比三种对象模型操作更简单方便,下面就来介绍一下如何使用。

控件介绍

  1. <SharePoint:TextField runat="serverID="txtCode" CssClass="input" OnInit="OnInitCode" /> 
  2. <SharePoint:SaveButton runat="serverID="btnSave" OnInit="OnInitSave" OnBeforeSaveItem="BeforeSaveItem" OnAfterSaveItem="AfterSaveItem" /> 

每个控件都有一个OnInit属性,这个是加载控件属性的方法,这个事件在OnLoad之前,具体用法大家查询一下页面的生命周期,这里就不再详细讲解了,在OnInit里面要初始化三个属性ControlMode、ListId、FieldName

  1. protected void OnInitCode(object sender, EventArgs e)  
  2.         {  
  3.             if (!string.IsNullOrEmpty(_id))  
  4.             {  
  5.                 txtCode.ControlMode = SPControlMode.Edit;  
  6.             }  
  7.             else 
  8.             {  
  9.                 txtCode.ControlMode = SPControlMode.New;  
  10.             }  
  11.             txtCode.ListId = _listId;  
  12.             txtCode.FieldName = _list.Fields["代码"].InternalName;  
  13.         } 

 为了重复用 _listId、_list,可以在 OnPreInit 事件里进行初始化,代码如下

  1. protected override void OnPreInit(EventArgs e)  
  2.         {  
  3.             _id = Request.QueryString["id"];  
  4.             _web = SPContext.Current.Web;  
  5.             _list = _web.Lists["代码维护"];  
  6.             _listId = _list.ID;  
  7.             if (!string.IsNullOrEmpty(_id))  
  8.             {  
  9.                 _item = _list.GetItemById(Convert.ToInt32(_id));  
  10.             }  
  11.             base.OnPreInit(e);  
  12.         } 

保存控件的初始化和其它控件一样,只是少了一个FieldName

  1. protected void OnInitSave(object sender, EventArgs e)  
  2.         {  
  3.             if (!string.IsNullOrEmpty(_id))  
  4.             {  
  5.                 btnSave.ControlMode = SPControlMode.Edit;  
  6.             }  
  7.             else 
  8.             {  
  9.                 btnSave.ControlMode = SPControlMode.New;  
  10.             }  
  11.             btnSave.ListId = _listId;  
  12.         } 

这样就完成了添加与保存功能,相比三种对象模型操作简单多了,没有试过的赶快试试吧,祝大家写代码写的开心,哈哈哈哈哈哈......

注意:ControlMode、ListId、FieldName是必须属性,否则显示不出来的。

posted on 2015-09-03 15:55  !无名之辈  阅读(199)  评论(0)    收藏  举报