Сначала позвольте мне очистить эфир и опубликовать статьи, в которых уже объясняется, как переопределить кнопку SaveButton:
Я прочитал эти ипонял их, я просто не знаю, как полностью реализовать это в моем конкретном случае:
У меня есть пользовательский шаблон рендеринга " CustomRender ", который включает в себя "реальную форму".Код для реальной формы выглядит примерно так:
<%@ Register TagPrefix="wssuc" TagName="ToolBar"
src="~/_controltemplates/ToolBar.ascx" %>
<%@ Control Language="C#" AutoEventWireup="true"
CodeBehind="RealForm.ascx.cs" Inherits="CustomNameSpace.CustomForm" %>
<p>Test</p>
<wssuc:ToolBar runat="server" id="toolbar">
<TemplateButtons>
<SharePoint:SaveButton runat="server" />
</TemplateButtons>
</wssuc:ToolBar>
Теперь я хочу переопределить эту кнопку сохранения.Сайты выше утверждают, что мне просто нужно написать еще один элемент управления, который переопределяет кнопку.Например:
public class NewSaveButton: SaveButton
{
protected override bool SaveItem()
{
bool success = base.SaveItem();
RedirectUrl = String.Concat(List.ParentWeb.ServerRelativeUrl, "/",
List.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url, @"?ID=",
ListItem.ID, @"&Source=", ListItem.ParentList.DefaultViewUrl);
return success;
}
}
Теперь я просто не знаю, как зарегистрировать этот шаблон в моем другом шаблоне.Могу ли я не просто переопределить кнопку SaveButton в коде позади моего шаблона - как бы я сделал это и сослаться на него позже?
- Вариант 1: код позади формы (
RealForm.ascx.cs
) -я могу просто добавить туда метод переопределения?Как я могу ссылаться на кнопку тогда в форме (как я могу получить <NewSaveButton>
)? - Вариант два: Другой шаблон только для кнопки, например, SaveButton.ascx "- как мне ссылаться на это через
<%@ Register... %>
т. е. как я узнаю PublicKeyToken
и т. д. при развертывании с помощью функции. И здесь тоже самое: моя цель - получить какой-то элемент управления <NewSaveButton>
для формы.