sharepoint 实现列表的插入,返回到本页的功能(利用现有控件重写按钮)
参考:http://www.cnblogs.com/jianyi0115/archive/2008/03/12/1102784.html
实现功能:点击按钮,实现列表插入,并返回到本页。
1.在屏幕上加入ListFormWebPart 控件
具体代码:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
注意修改一下你的 列表ID 也就是ListName 属性。
2.修改模板
大家注意到了TemplateName 这个属性,就是定制你的插入表单控件的模板 路径应该放到C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\template\controltemplates 里面
插入控件模板的具体代码是:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
<SharePoint:RenderingTemplate ID="Tem_union3_narrow" runat="server">
<Template>
<div class="union_title">标题:</div>
<div>
<SharePoint:TextField ID="textfield" runat="server" FieldName="Title" CssClass="union_Tem_text_narrow" />
</div>
<div class="union_title">内容:</div>
<div>
<SharePoint:NoteField ID="textfield1" runat="server" FieldName="WorkAddress"
CssClass="union_Tem_text_narrow" />
</div>
<div>
<div style="width: 100px; text-align:center;">
<cc2:FormSaveButton ID="FormSaveButton1" runat="server" Text="提交" CssClass="button_narrow">
</cc2:FormSaveButton>
</div>
</div>
</div>
</Template>
</SharePoint:RenderingTemplate>
3.重写按钮 大家注意到第二步
<cc2:FormSaveButton ID="FormSaveButton1" runat="server" Text="提交" CssClass="button_narrow"></cc2:FormSaveButton>
这个按钮就是重写的,具体方法:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using System.Web.UI;
using Microsoft.SharePoint.WebControls;
using System.Security.Permissions;
using Microsoft.SharePoint.Utilities
namespace CodeArt.SharePoint
{
/// <summary>
/// 列表表单保存按钮,保存后返回本页面,
/// </summary>
public class FormSaveButton : SaveButton
{
//return true stop event bubble
//return false cotinue
protected override bool OnBubbleEvent(object source, EventArgs e)
{
this.Page.Validate();
if (!this.Page.IsValid)
{
return true ;
}
//some valid code
try
{
SaveData();
return true ;
}
catch (Exception ex)
{
throw new SPException(ex.Message,ex);
}
Page.Response.Redirect("/");
}
void SaveData()
{
SPListItem listItem;
if (this.ControlMode == SPControlMode.New)
listItem = this.List.Items.Add();
else
listItem = this.ListItem;
foreach (BaseFieldControl f in this.ItemContext.FormContext.FieldControlCollection)
{
try
{
//some valid code here --if(f.FieldName="XX") do something
![](https://www.cnblogs.com/Images/dot.gif)
if (!f.Field.ReadOnlyField)
listItem[f.FieldName] = f.Value;
}
catch (ArgumentException) { }
}
listItem.Update();
}
}
}
4.如果一些步骤没错,就可以看到最终效果,插入列表的控件,和列表在一个界面,插入以后,列表更新,返回本页。
发图太麻烦,就不发了,希望对大家能有所帮助。