Mini Kabibi Habibi
using System;
using System.Web.UI;
using DevExpress.Web.ASPxClasses;
using DevExpress.Web.ASPxPanel;
namespace ASPxThemeBuilderSite {
public class BasePage: Page {
public string GetASPxCounterpartUrl() {
string counterpart = string.Empty;
string[] urlParts = Request.Url.AbsoluteUri.Split('/');
if(urlParts.Length > 0)
counterpart = urlParts[urlParts.Length - 1].Replace(".aspx", "").Replace("MVCx", "");
return !string.IsNullOrEmpty(counterpart) ? "#?Redirect=" + counterpart : "#";
}
public void ShowOptions() {
Master.FindControl("OptionContainer").Visible = true;
}
protected ASPxPanel RtlContainer {
get { return Master.FindControl("RtlContaniner") as ASPxPanel; }
}
protected override void OnInit(EventArgs e) {
base.OnInit(e);
if(!IsPostBack)
LoadOptions();
}
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
ASPxWebControl.RegisterBaseScript(this);
}
protected override void OnPreRender(EventArgs e) {
base.OnPreRender(e);
SaveOptions();
}
protected virtual void LoadOptions() {
}
protected virtual void SaveOptions() {
}
protected void LoadOption<T>(string name, Action<T> setValue, T defaultValue) {
object value = Application.Contents[GetCacheKey(name)];
setValue(value != null ? (T)value : defaultValue);
}
protected void SaveOption<T>(string name, Func<T> getValue) {
Application.Contents[GetCacheKey(name)] = getValue();
}
string GetCacheKey(string optionName) {
string[] urlParts = Request.Url.AbsoluteUri.Split('/');
if(urlParts.Length > 0)
return urlParts[urlParts.Length - 1] + "_" + optionName;
return optionName;
}
}
}