📄 tablayout.aspx.cs
字号:
this.RightDeleteBtn.Click += new System.Web.UI.ImageClickEventHandler(this.DeleteBtn_Click);
this.applyBtn.Click += new System.EventHandler(this.Apply_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
#region 触发的事件
/// <summary>
/// 上下移动(原理可参见标签排序所解释的)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void UpDown_Click(Object sender, ImageClickEventArgs e)
{
String cmd = ((ImageButton)sender).CommandName;
String pane = ((ImageButton)sender).CommandArgument;
ListBox _listbox = (ListBox) Page.FindControl(pane);
ArrayList modules = GetModules(pane);
if (_listbox.SelectedIndex != -1)
{
int delta;
int selection = -1;
if (cmd == "down")
{
delta = 3;
if (_listbox.SelectedIndex < _listbox.Items.Count-1)
selection = _listbox.SelectedIndex + 1;
}
else
{
delta = -3;
if (_listbox.SelectedIndex > 0)
selection = _listbox.SelectedIndex - 1;
}
ModuleItem m;
m = (ModuleItem) modules[_listbox.SelectedIndex];
m.ModuleOrder += delta;
// reorder the modules in the content pane
OrderModules(modules);
// resave the order
Configuration config = new Configuration();
foreach (ModuleItem item in modules)
{
config.UpdateModuleOrder(item.ModuleId, item.ModuleOrder, pane);
}
}
// 重定向到原始请求页
Response.Redirect(Request.RawUrl);
}
/// <summary>
/// 左右移动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RightLeft_Click(Object sender, ImageClickEventArgs e)
{
//sourcePane和targetPane分别表示源框架和目标框架
String sourcePane = ((ImageButton)sender).Attributes["sourcepane"];
String targetPane = ((ImageButton)sender).Attributes["targetpane"];
// 源列表框
ListBox sourceBox = (ListBox) Page.FindControl(sourcePane);
// 目标列表框
ListBox targetBox = (ListBox) Page.FindControl(targetPane);
if (sourceBox.SelectedIndex != -1)
{
// 获取源框架中的模块ArrayList
ArrayList sourceList = GetModules(sourcePane);
// 获取选中项
ModuleItem m = (ModuleItem) sourceList[sourceBox.SelectedIndex];
// 将它添加到目标框架中(默认最后一个)
Configuration config = new Configuration();
config.UpdateModuleOrder(m.ModuleId, 998, targetPane);
// 从源列表中删除该项
sourceList.RemoveAt(sourceBox.SelectedIndex);
// 从HttpContext中获取全局设置对象
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
//重新从XML中读取
HttpContext.Current.Items["PortalSettings"] = new PortalSettings(portalSettings.PortalId, tabId);
// 获取源框架中的模块列表并重新排序
sourceList = GetModules(sourcePane);
OrderModules(sourceList);
// 保存序号变更
foreach (ModuleItem item in sourceList)
{
config.UpdateModuleOrder(item.ModuleId, item.ModuleOrder, sourcePane);
}
// 获取目标框架中的模块列表并重新排序
ArrayList targetList = GetModules(targetPane);
OrderModules(targetList);
// 保存序号变更
foreach (ModuleItem item in targetList)
{
config.UpdateModuleOrder(item.ModuleId, item.ModuleOrder, targetPane);
}
// 重定向到原始请求页
Response.Redirect(Request.RawUrl);
}
}
/// <summary>
/// 编辑用户模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void EditBtn_Click(Object sender, ImageClickEventArgs e)
{
String pane = ((ImageButton)sender).CommandArgument;
ListBox _listbox = (ListBox) Page.FindControl(pane);
if (_listbox.SelectedIndex != -1)
{
int mid = Int32.Parse(_listbox.SelectedItem.Value);
// Redirect to module settings page
Response.Redirect("ModuleSettings.aspx?mid=" + mid + "&tabid=" + tabId);
}
}
/// <summary>
/// 删除用户模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DeleteBtn_Click(Object sender, ImageClickEventArgs e)
{
String pane = ((ImageButton)sender).CommandArgument;
ListBox _listbox = (ListBox) Page.FindControl(pane);
ArrayList modules = GetModules(pane);
if (_listbox.SelectedIndex != -1)
{
ModuleItem m = (ModuleItem) modules[_listbox.SelectedIndex];
if (m.ModuleId > -1)
{
// must delete from database too
Configuration config = new Configuration();
config.DeleteModule(m.ModuleId);
}
}
// 重定向到原始请求页
Response.Redirect(Request.RawUrl);
}
/// <summary>
/// 添加新模块到标签中去
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AddModuleToPane_Click(Object sender, EventArgs e)
{
// 添加的新模块默认为最后一个
ModuleItem m = new ModuleItem();
m.ModuleTitle = moduleTitle.Text;
m.ModuleDefId = Int32.Parse(moduleType.SelectedItem.Value);
m.ModuleOrder = 999;
// 保存设置(默认添加到中间框架)
Configuration config = new Configuration();
m.ModuleId = config.AddModule(tabId, m.ModuleOrder, "ContentPane", m.ModuleTitle, m.ModuleDefId, 0, "Admins", false);
// 从HttpContext中获取全局设置对象
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
// 重新从XML中读取
HttpContext.Current.Items["PortalSettings"] = new PortalSettings(portalSettings.PortalId, tabId);
// reorder the modules in the content pane
// 获取中间模块的用户模块列表并重新排序
ArrayList modules = GetModules("ContentPane");
OrderModules(modules);
// resave the order
// 重新保存序号
foreach (ModuleItem item in modules)
{
config.UpdateModuleOrder(item.ModuleId, item.ModuleOrder, "ContentPane");
}
//重定向到当前请求的原始Url
Response.Redirect(Request.RawUrl);
}
/// <summary>
/// 当TextBox中文本改变时触发,因为TextBox的AutoPostBack属性没有设置,所以不会触发该事件,也没有必要触发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TabSettings_Change(Object sender, EventArgs e)
{
SaveTabData();
}
/// <summary>
/// 提交
/// </summary>
/// <param name="Sender"></param>
/// <param name="e"></param>
private void Apply_Click(Object Sender, EventArgs e)
{
// Save changes then navigate back to admin.
// 好像没有用
// String id = (String)((LinkButton)Sender).ID;
SaveTabData();
// 获取管理标签的索引adminIndex,管理标签默认为最后一个
PortalSettings portalSettings = (PortalSettings) Context.Items["PortalSettings"];
int adminIndex = portalSettings.DesktopTabs.Count-1;
// 返回管理页
Response.Redirect("~/DesktopDefault.aspx?tabindex=" + adminIndex.ToString() + "&tabid=" + ((TabStripDetails)portalSettings.DesktopTabs[adminIndex]).TabId);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -