覆盖SharePoint:SaveButton单击事件共享点

问题描述:

我已经创建了一个自定义Share Point 2010 webpart,其中我从用户获取输入,基本上它是一种新的表单。我对数据存储的预定义列表,我用覆盖SharePoint:SaveButton单击事件共享点

<SharePoint:FormField ID="id" runat="server" ControlMode="New" FieldName="name" > 
</SharePoint:FormField> 

和使用

<SharePoint:SaveButton ID="SP_save" runat="server" ControlMode="New" > 
</SharePoint:SaveButton> 

保存表单字段。 它所有工作正常,它需要输入中的有效数据并显示正确的验证消息。 但我有一个问题,因为我无法访问SharePoint:SaveButton单击事件,并且无法将其覆盖到我的自定义事件

例如,我有一个要求将数据保存在列表中,然后根据输入执行一些其他任务,所以我该怎么做

您需要创建自定义SaveButton并覆盖SaveItem方法。

代码:

namespace CustomOverrideControls 
{ 
    public class CustomSaveButton : SaveButton 
    { 
     protected override void OnInit(EventArgs e) 
     { 
      base.OnInit(e); 
     } 

     protected override bool SaveItem() 
     { 
      // Do the custom code here 
      return base.SaveItem(); 
     } 
    } 
} 

标记:

<CustomOverrideControls:CustomSaveButton ID="SP_save" runat="server" 
    ControlMode="New"> 
</CustomOverrideControls:CustomSaveButton> 

我从文章How to override or customize the SharePoint SaveButton?也包含了下载一个完整的项目上面的例子。

+0

其实我想将用户重定向到我定义的页面,所以在saveitem()中,我设置了RedirectUrl,但它不会重定向到我定义的页面? –

+0

@Saboor Awan:我只需在'base.SaveItem'后调用'Response.Redirect'方法,但也可以尝试通过添加'?source = http:// [site]/[库]/CustomRedirectPage.aspx'(http://www.graphicalwonder.com/?p=666)。 –