diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs
index 6857daf50e..b33ae42698 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/controls/ContentControl.cs
@@ -29,6 +29,13 @@ namespace umbraco.controls
///
public class ContentControl : TabView
{
+
+ public ContentControl()
+ {
+ //by default set this to true for content
+ SavePropertyDataWhenInvalid = true;
+ }
+
private readonly Content _content;
private readonly ArrayList _dataFields = new ArrayList();
private UmbracoEnsuredPage _prntpage;
@@ -50,6 +57,19 @@ namespace umbraco.controls
get { return _content; }
}
+ ///
+ /// This property controls whether the content property values are persisted even if validation
+ /// fails. If set to false, then the values will not be persisted.
+ ///
+ ///
+ /// This is required because when we are editing content we should be persisting invalid values to the database
+ /// as this makes it easier for editors to come back and fix up their changes before they publish. Of course we
+ /// don't publish if the page is invalid. In the case of media and members, we don't want to persist the values
+ /// to the database when the page is invalid because there is no published state.
+ /// Relates to: http://issues.umbraco.org/issue/U4-227
+ ///
+ public bool SavePropertyDataWhenInvalid { get; set; }
+
[Obsolete("This is no longer used and will be removed from the codebase in future versions")]
private string _errorMessage = "";
@@ -261,34 +281,33 @@ namespace umbraco.controls
private void SaveClick(object sender, ImageClickEventArgs e)
- {
- ////TODO: If we are editing media/content we should not continue saving
- //// if the page is invalid!
- //// http://issues.umbraco.org/issue/U4-227
- //if (Page.IsValid)
- //{
- //}
-
- var doc = this._content as Document;
- if (doc != null)
+ {
+ //we only continue saving anything if:
+ // SavePropertyDataWhenInvalid == true
+ // OR if the page is actually valid.
+ if (SavePropertyDataWhenInvalid || Page.IsValid)
{
- var docArgs = new SaveEventArgs();
- doc.FireBeforeSave(docArgs);
-
- if (docArgs.Cancel) //TODO: need to have some notification to the user here
+ var doc = this._content as Document;
+ if (doc != null)
{
- return;
- }
- }
- foreach (IDataEditor df in _dataFields)
- {
- df.Save();
- }
+ var docArgs = new SaveEventArgs();
+ doc.FireBeforeSave(docArgs);
- //don't update if the name is empty
- if (!NameTxt.Text.IsNullOrWhiteSpace())
- {
- _content.Text = NameTxt.Text;
+ if (docArgs.Cancel) //TODO: need to have some notification to the user here
+ {
+ return;
+ }
+ }
+ foreach (IDataEditor df in _dataFields)
+ {
+ df.Save();
+ }
+
+ //don't update if the name is empty
+ if (!NameTxt.Text.IsNullOrWhiteSpace())
+ {
+ _content.Text = NameTxt.Text;
+ }
}
if (Save != null)
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs
index b2a4119301..73ac3f0ace 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs
@@ -265,9 +265,6 @@ namespace umbraco.cms.presentation
}
}
-
-
-
// Run Handler
BusinessLogic.Actions.Action.RunActionHandlers(_document, ActionUpdate.Instance);
_document.Save();
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/editMedia.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/editMedia.aspx.cs
index ff15d142b9..9dc9c9ef03 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/editMedia.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/editMedia.aspx.cs
@@ -25,9 +25,9 @@ namespace umbraco.cms.presentation
///
public partial class editMedia : BasePages.UmbracoEnsuredPage
{
- private uicontrols.Pane mediaPropertiesPane = new uicontrols.Pane();
- private LiteralControl updateDateLiteral = new LiteralControl();
- private LiteralControl mediaFileLinksLiteral = new LiteralControl();
+ private readonly uicontrols.Pane _mediaPropertiesPane = new uicontrols.Pane();
+ private readonly LiteralControl _updateDateLiteral = new LiteralControl();
+ private readonly LiteralControl _mediaFileLinksLiteral = new LiteralControl();
public editMedia()
{
@@ -35,18 +35,12 @@ namespace umbraco.cms.presentation
}
protected uicontrols.TabView TabView1;
- protected System.Web.UI.WebControls.TextBox documentName;
- private cms.businesslogic.media.Media _media;
- controls.ContentControl tmp;
-
- //protected System.Web.UI.WebControls.Literal SyncPath;
-
+ protected TextBox documentName;
+ private businesslogic.media.Media _media;
+ controls.ContentControl _contentControl;
+
override protected void OnInit(EventArgs e)
{
- //
- // CODEGEN: This call is required by the ASP.NET Web Form Designer.
- //
- InitializeComponent();
base.OnInit(e);
_media = new cms.businesslogic.media.Media(int.Parse(Request.QueryString["id"]));
@@ -55,88 +49,83 @@ namespace umbraco.cms.presentation
bool exists = SqlHelper.ExecuteScalar("SELECT COUNT(nodeId) FROM cmsContentXml WHERE nodeId = @nodeId",
SqlHelper.CreateParameter("@nodeId", _media.Id)) > 0;
if (!exists)
+ {
_media.XmlGenerate(new XmlDocument());
+ }
+ _contentControl = new controls.ContentControl(_media, controls.ContentControl.publishModes.NoPublish, "TabView1");
+ _contentControl.Width = Unit.Pixel(666);
+ _contentControl.Height = Unit.Pixel(666);
- tmp = new controls.ContentControl(_media, controls.ContentControl.publishModes.NoPublish, "TabView1");
- tmp.Width = Unit.Pixel(666);
- tmp.Height = Unit.Pixel(666);
- plc.Controls.Add(tmp);
+ //this must be set to false as we don't want to proceed to save anything if the page is invalid
+ _contentControl.SavePropertyDataWhenInvalid = false;
- tmp.Save += new System.EventHandler(Save);
+ plc.Controls.Add(_contentControl);
- this.updateDateLiteral.ID = "updateDate";
- this.updateDateLiteral.Text = _media.VersionDate.ToShortDateString() + " " + _media.VersionDate.ToShortTimeString();
+ _contentControl.Save += new System.EventHandler(Save);
- this.mediaFileLinksLiteral.ID = "mediaFileLinks";
- mediaPropertiesPane.addProperty(ui.Text("content", "updateDate", base.getUser()), this.updateDateLiteral);
+ this._updateDateLiteral.ID = "updateDate";
+ this._updateDateLiteral.Text = _media.VersionDate.ToShortDateString() + " " + _media.VersionDate.ToShortTimeString();
+
+ this._mediaFileLinksLiteral.ID = "mediaFileLinks";
+ _mediaPropertiesPane.addProperty(ui.Text("content", "updateDate", base.getUser()), this._updateDateLiteral);
this.UpdateMediaFileLinksLiteral();
- mediaPropertiesPane.addProperty(ui.Text("content", "mediaLinks"), this.mediaFileLinksLiteral);
+ _mediaPropertiesPane.addProperty(ui.Text("content", "mediaLinks"), this._mediaFileLinksLiteral);
// add the property pane to the page rendering
- tmp.tpProp.Controls.AddAt(1, mediaPropertiesPane);
+ _contentControl.tpProp.Controls.AddAt(1, _mediaPropertiesPane);
}
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
-
- }
-
- protected void Page_Load(object sender, System.EventArgs e)
+ protected void Page_Load(object sender, EventArgs e)
{
- //if (!IsPostBack)
- //{
- // SyncPath.Text = _media.Path;
- // newName.Text = _media.Text.Replace("'", "\\'");
- //}
if (!IsPostBack)
{
ClientTools.SyncTree(_media.Path, false);
}
}
- protected void Save(object sender, System.EventArgs e)
+ protected void Save(object sender, EventArgs e)
{
- // error handling test
+ // do not continue saving anything if the page is invalid!
+ // http://issues.umbraco.org/issue/U4-227
if (!Page.IsValid)
{
- foreach (uicontrols.TabPage tp in tmp.GetPanels())
+ foreach (uicontrols.TabPage tp in _contentControl.GetPanels())
{
tp.ErrorControl.Visible = true;
tp.ErrorHeader = ui.Text("errorHandling", "errorHeader");
tp.CloseCaption = ui.Text("close");
}
}
- else if (Page.IsPostBack)
+ else
{
- // hide validation summaries
- foreach (uicontrols.TabPage tp in tmp.GetPanels())
+ if (Page.IsPostBack)
{
- tp.ErrorControl.Visible = false;
- }
- }
- _media.Save();
+ // hide validation summaries
+ foreach (uicontrols.TabPage tp in _contentControl.GetPanels())
+ {
+ tp.ErrorControl.Visible = false;
+ }
+ }
- this.updateDateLiteral.Text = _media.VersionDate.ToShortDateString() + " " + _media.VersionDate.ToShortTimeString();
- this.UpdateMediaFileLinksLiteral();
+ _media.Save();
- _media.XmlGenerate(new XmlDocument());
- ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editMediaSaved"), ui.Text("editMediaSavedText"));
- ClientTools.SyncTree(_media.Path, true);
+ this._updateDateLiteral.Text = _media.VersionDate.ToShortDateString() + " " + _media.VersionDate.ToShortTimeString();
+ this.UpdateMediaFileLinksLiteral();
+
+ _media.XmlGenerate(new XmlDocument());
+ ClientTools.ShowSpeechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editMediaSaved"), ui.Text("editMediaSavedText"));
+ ClientTools.SyncTree(_media.Path, true);
+ }
}
-
private void UpdateMediaFileLinksLiteral()
{
var uploadField = new Factory().GetNewObject(new Guid("5032a6e6-69e3-491d-bb28-cd31cd11086c"));
// always clear, incase the upload file was removed
- this.mediaFileLinksLiteral.Text = string.Empty;
+ this._mediaFileLinksLiteral.Text = string.Empty;
try
{
@@ -149,14 +138,14 @@ namespace umbraco.cms.presentation
if (properties.Any())
{
- this.mediaFileLinksLiteral.Text += "";
+ this._mediaFileLinksLiteral.Text += "";
foreach (var property in properties)
{
- this.mediaFileLinksLiteral.Text += string.Format("| {0} | {1} |
", property.PropertyType.Name, property.Value);
+ this._mediaFileLinksLiteral.Text += string.Format("| {0} | {1} |
", property.PropertyType.Name, property.Value);
}
- this.mediaFileLinksLiteral.Text += "
";
+ this._mediaFileLinksLiteral.Text += "
";
}
}
catch
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
index af928011d7..64275a3fe7 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
@@ -1,17 +1,9 @@
using System;
-using System.Collections;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Web;
-using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
-using System.Web.UI.HtmlControls;
-
+using Umbraco.Core.IO;
using umbraco.cms.businesslogic.member;
using System.Web.Security;
-using umbraco.IO;
namespace umbraco.cms.presentation.members
{
@@ -25,11 +17,11 @@ namespace umbraco.cms.presentation.members
CurrentApp = BusinessLogic.DefaultApps.member.ToString();
}
protected uicontrols.TabView TabView1;
- protected System.Web.UI.WebControls.TextBox documentName;
- private cms.businesslogic.member.Member _document;
- private MembershipUser m_Member;
- controls.ContentControl tmp;
- protected umbraco.uicontrols.UmbracoPanel m_MemberShipPanel = new umbraco.uicontrols.UmbracoPanel();
+ protected TextBox documentName;
+ private Member _document;
+ private MembershipUser _member;
+ controls.ContentControl _contentControl;
+ protected uicontrols.UmbracoPanel m_MemberShipPanel = new uicontrols.UmbracoPanel();
protected TextBox MemberLoginNameTxt = new TextBox();
protected RequiredFieldValidator MemberLoginNameVal = new RequiredFieldValidator();
@@ -39,7 +31,7 @@ namespace umbraco.cms.presentation.members
protected controls.DualSelectbox _memberGroups = new controls.DualSelectbox();
- protected void Page_Load(object sender, System.EventArgs e)
+ protected void Page_Load(object sender, EventArgs e)
{
// Add password changer
@@ -47,19 +39,23 @@ namespace umbraco.cms.presentation.members
if (Member.InUmbracoMemberMode())
{
- _document = new cms.businesslogic.member.Member(int.Parse(Request.QueryString["id"]));
- m_Member = Membership.GetUser(_document.Id);
- tmp = new controls.ContentControl(_document, controls.ContentControl.publishModes.NoPublish, "TabView1");
- tmp.Width = Unit.Pixel(666);
- tmp.Height = Unit.Pixel(666);
- plc.Controls.Add(tmp);
+ _document = new Member(int.Parse(Request.QueryString["id"]));
+ _member = Membership.GetUser(_document.Id);
+ _contentControl = new controls.ContentControl(_document, controls.ContentControl.publishModes.NoPublish, "TabView1");
+ _contentControl.Width = Unit.Pixel(666);
+ _contentControl.Height = Unit.Pixel(666);
+
+ //this must be set to false as we don't want to proceed to save anything if the page is invalid
+ _contentControl.SavePropertyDataWhenInvalid = false;
+
+ plc.Controls.Add(_contentControl);
if (!IsPostBack)
{
MemberLoginNameTxt.Text = _document.LoginName;
MemberEmail.Text = _document.Email;
}
- PlaceHolder ph = new PlaceHolder();
+ var ph = new PlaceHolder();
MemberLoginNameTxt.ID = "loginname";
ph.Controls.Add(MemberLoginNameTxt);
ph.Controls.Add(MemberLoginNameVal);
@@ -69,26 +65,27 @@ namespace umbraco.cms.presentation.members
MemberLoginNameVal.EnableClientScript = false;
MemberLoginNameVal.Display = ValidatorDisplay.Dynamic;
- tmp.PropertiesPane.addProperty(ui.Text("login"), ph);
- tmp.PropertiesPane.addProperty(ui.Text("password"), MemberPasswordTxt);
- tmp.PropertiesPane.addProperty("Email", MemberEmail);
+ _contentControl.PropertiesPane.addProperty(ui.Text("login"), ph);
+ _contentControl.PropertiesPane.addProperty(ui.Text("password"), MemberPasswordTxt);
+ _contentControl.PropertiesPane.addProperty("Email", MemberEmail);
}
else
{
- m_Member = Membership.GetUser(Request.QueryString["id"]);
- MemberLoginNameTxt.Text = m_Member.UserName;
+ _member = Membership.GetUser(Request.QueryString["id"]);
+ MemberLoginNameTxt.Text = _member.UserName;
if (!IsPostBack)
{
- MemberEmail.Text = m_Member.Email;
+ MemberEmail.Text = _member.Email;
}
m_MemberShipPanel.Width = 300;
- m_MemberShipPanel.Text = ui.Text("edit") + " " + m_Member.UserName;
- umbraco.uicontrols.Pane props = new umbraco.uicontrols.Pane();
+ m_MemberShipPanel.Text = ui.Text("edit") + " " + _member.UserName;
+ var props = new uicontrols.Pane();
MemberLoginNameTxt.Enabled = false;
// check for pw support
- if (!Membership.Provider.EnablePasswordRetrieval) {
+ if (!Membership.Provider.EnablePasswordRetrieval)
+ {
MemberPasswordTxt.Controls.Clear();
MemberPasswordTxt.Controls.Add(
new LiteralControl("" + ui.Text("errorHandling", "errorChangingProviderPassword") + ""));
@@ -102,20 +99,20 @@ namespace umbraco.cms.presentation.members
}
// Groups
- umbraco.uicontrols.Pane p = new umbraco.uicontrols.Pane();
+ var p = new uicontrols.Pane();
_memberGroups.ID = "Membergroups";
_memberGroups.Width = 175;
- string selectedMembers = "";
- foreach(string role in Roles.GetAllRoles())
+ var selectedMembers = "";
+ foreach(var role in Roles.GetAllRoles())
{
// if a role starts with __umbracoRole we won't show it as it's an internal role used for public access
if (!role.StartsWith("__umbracoRole"))
{
- ListItem li = new ListItem(role);
+ var li = new ListItem(role);
if (!IsPostBack)
{
- if (Roles.IsUserInRole(m_Member.UserName, role))
+ if (Roles.IsUserInRole(_member.UserName, role))
selectedMembers += role + ",";
}
_memberGroups.Items.Add(li);
@@ -127,113 +124,119 @@ namespace umbraco.cms.presentation.members
if (Member.InUmbracoMemberMode())
{
- tmp.tpProp.Controls.Add(p);
- tmp.Save += new System.EventHandler(tmp_save);
+ _contentControl.tpProp.Controls.Add(p);
+ _contentControl.Save += new System.EventHandler(tmp_save);
}
else
m_MemberShipPanel.Controls.Add(p);
}
- void menuSave_Click(object sender, ImageClickEventArgs e)
+ void MenuSaveClick(object sender, ImageClickEventArgs e)
{
tmp_save(sender, e);
}
- protected void tmp_save(object sender, System.EventArgs e) {
- Page.Validate();
- if (Page.IsValid)
- {
- if (Member.InUmbracoMemberMode())
+
+ protected void tmp_save(object sender, EventArgs e)
+ {
+ Page.Validate();
+ if (!Page.IsValid)
+ {
+ foreach (uicontrols.TabPage tp in _contentControl.GetPanels())
{
- _document.LoginName = MemberLoginNameTxt.Text;
- _document.Email = MemberEmail.Text;
-
- // Check if password should be changed
- string tempPassword = ((controls.passwordChanger) MemberPasswordTxt.Controls[0]).Password;
- if (tempPassword.Trim() != "")
- _document.Password = tempPassword;
-
- // Groups
- foreach (ListItem li in _memberGroups.Items)
- if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1)
- {
- if (!Roles.IsUserInRole(_document.LoginName, li.Value))
- Roles.AddUserToRole(_document.LoginName, li.Value);
- }
- else if (Roles.IsUserInRole(_document.LoginName, li.Value))
- {
- Roles.RemoveUserFromRole(_document.LoginName, li.Value);
- }
- // refresh cache
- _document.XmlGenerate(new System.Xml.XmlDocument());
- _document.Save();
+ tp.ErrorControl.Visible = true;
+ tp.ErrorHeader = ui.Text("errorHandling", "errorHeader");
+ tp.CloseCaption = ui.Text("close");
}
- else
+ }
+ else
+ {
+
+ if (Page.IsPostBack)
{
- m_Member.Email = MemberEmail.Text;
- if (Membership.Provider.EnablePasswordRetrieval)
+ // hide validation summaries
+ foreach (uicontrols.TabPage tp in _contentControl.GetPanels())
{
- string tempPassword = ((controls.passwordChanger) MemberPasswordTxt.Controls[0]).Password;
- if (tempPassword.Trim() != "")
- m_Member.ChangePassword(m_Member.GetPassword(), tempPassword);
+ tp.ErrorControl.Visible = false;
}
- Membership.UpdateUser(m_Member);
- // Groups
- foreach (ListItem li in _memberGroups.Items)
- if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1)
- {
- if (!Roles.IsUserInRole(m_Member.UserName, li.Value))
- Roles.AddUserToRole(m_Member.UserName, li.Value);
- }
- else if (Roles.IsUserInRole(m_Member.UserName, li.Value))
- {
- Roles.RemoveUserFromRole(m_Member.UserName, li.Value);
- }
+ }
- }
+ if (Member.InUmbracoMemberMode())
+ {
+ _document.LoginName = MemberLoginNameTxt.Text;
+ _document.Email = MemberEmail.Text;
- this.speechBubble(BasePages.BasePage.speechBubbleIcon.save,
- ui.Text("speechBubbles", "editMemberSaved", base.getUser()), "");
- }
- }
+ // Check if password should be changed
+ string tempPassword = ((controls.passwordChanger) MemberPasswordTxt.Controls[0]).Password;
+ if (tempPassword.Trim() != "")
+ _document.Password = tempPassword;
- private umbraco.uicontrols.PropertyPanel AddProperty(string Caption, Control C) {
- umbraco.uicontrols.PropertyPanel pp = new umbraco.uicontrols.PropertyPanel();
- pp.Controls.Add(C);
- pp.Text = Caption;
- return pp;
- }
-
- #region Web Form Designer generated code
- override protected void OnInit(EventArgs e)
+ // Groups
+ foreach (ListItem li in _memberGroups.Items)
+ if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1)
+ {
+ if (!Roles.IsUserInRole(_document.LoginName, li.Value))
+ Roles.AddUserToRole(_document.LoginName, li.Value);
+ }
+ else if (Roles.IsUserInRole(_document.LoginName, li.Value))
+ {
+ Roles.RemoveUserFromRole(_document.LoginName, li.Value);
+ }
+ // refresh cache
+ _document.XmlGenerate(new System.Xml.XmlDocument());
+ _document.Save();
+ }
+ else
+ {
+ _member.Email = MemberEmail.Text;
+ if (Membership.Provider.EnablePasswordRetrieval)
+ {
+ string tempPassword = ((controls.passwordChanger) MemberPasswordTxt.Controls[0]).Password;
+ if (tempPassword.Trim() != "")
+ _member.ChangePassword(_member.GetPassword(), tempPassword);
+ }
+ Membership.UpdateUser(_member);
+ // Groups
+ foreach (ListItem li in _memberGroups.Items)
+ if (("," + _memberGroups.Value + ",").IndexOf("," + li.Value + ",") > -1)
+ {
+ if (!Roles.IsUserInRole(_member.UserName, li.Value))
+ Roles.AddUserToRole(_member.UserName, li.Value);
+ }
+ else if (Roles.IsUserInRole(_member.UserName, li.Value))
+ {
+ Roles.RemoveUserFromRole(_member.UserName, li.Value);
+ }
+
+ }
+
+ this.speechBubble(speechBubbleIcon.save, ui.Text("speechBubbles", "editMemberSaved", base.getUser()), "");
+ }
+ }
+
+ private uicontrols.PropertyPanel AddProperty(string caption, Control c)
+ {
+ var pp = new uicontrols.PropertyPanel();
+ pp.Controls.Add(c);
+ pp.Text = caption;
+ return pp;
+ }
+
+ override protected void OnInit(EventArgs e)
{
- //
- // CODEGEN: This call is required by the ASP.NET Web Form Designer.
- //
-
- if (!Member.InUmbracoMemberMode()) {
- m_MemberShipPanel.hasMenu = true;
- umbraco.uicontrols.MenuImageButton menuSave = m_MemberShipPanel.Menu.NewImageButton();
- menuSave.ID = m_MemberShipPanel.ID + "_save";
- menuSave.ImageUrl = SystemDirectories.Umbraco + "/images/editor/save.gif";
- menuSave.Click += new ImageClickEventHandler(menuSave_Click);
- menuSave.AltText = ui.Text("buttons", "save", null);
-
- }
- InitializeComponent();
- base.OnInit(e);
+ if (!Member.InUmbracoMemberMode())
+ {
+ m_MemberShipPanel.hasMenu = true;
+ umbraco.uicontrols.MenuImageButton menuSave = m_MemberShipPanel.Menu.NewImageButton();
+ menuSave.ID = m_MemberShipPanel.ID + "_save";
+ menuSave.ImageUrl = SystemDirectories.Umbraco + "/images/editor/save.gif";
+ menuSave.Click += new ImageClickEventHandler(MenuSaveClick);
+ menuSave.AltText = ui.Text("buttons", "save", null);
+ }
+ base.OnInit(e);
}
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
-
- }
- #endregion
}
}