html 动态修改列名,FineUI之动态增加列及修改列的实现
在FineUI的官方示例中有类似的实现。示例中实现了动态增加列,但有时我们可能需要动态修改列。先来看效果图
下面是代码实现
DynamicGrid.aspx
DynamicGrid.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FineUI;
namespace FineUITest
{
public partial class DynamicGrid : System.Web.UI.Page
{
private const string GRID_COLUMN_HEADER = "GRID_COLUMN_HEADER";
private const string UPDATE_HEADER = "UPDATE_HEADER";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitLoad();
}
}
private void InitLoad()
{
if (!NeedUpdateHeader())
{
Session.Remove(GRID_COLUMN_HEADER);
return;
}
List headers = Session[GRID_COLUMN_HEADER] as List;
if (headers == null)
{
return;
}
FineUI.BoundField bf = null;
foreach (String header in headers)
{
bf = new FineUI.BoundField();
bf.HeaderText = header;
bf.DataFormatString = "{0}";
GridDemo.Columns.Add(bf);
}
}
private bool NeedUpdateHeader()
{
if (Request == null)
{
return false;
}
String updateHeader = Request.QueryString[UPDATE_HEADER];
if (String.IsNullOrWhiteSpace(updateHeader) || updateHeader.ToUpper().Equals("FALSE"))
{
return false;
}
return true;
}
protected void btnAdd_Click(object sender, EventArgs e)
{
List headers = Session[GRID_COLUMN_HEADER] as List;
if (headers == null)
{
headers = new List();
}
String header = "列" + headers.Count.ToString();
headers.Add(header);
Session[GRID_COLUMN_HEADER] = headers;
PageContext.Redirect(FetchRefreshUrl());
}
private String FetchRefreshUrl()
{
String url = "DynamicGrid.aspx";
url += "?" + UPDATE_HEADER + "=TRUE";
return url;
}
protected void btnEdit_Click(object sender, EventArgs e)
{
List headers = Session[GRID_COLUMN_HEADER] as List;
if (headers == null || headers.Count <= 0)
{
Alert.Show("暂无可供修改的列");
return;
}
WindowEdit.Hidden = false;
DropDownListHeaders.DataSource = headers;
DropDownListHeaders.DataBind();
DropDownListHeaders.SelectedIndex = 0;
}
protected void btnOK_Click(object sender, EventArgs e)
{
List headers = Session[GRID_COLUMN_HEADER] as List;
if (headers == null || headers.Count <= 0)
{
Alert.Show("暂无可供修改的列");
return;
}
if (String.IsNullOrWhiteSpace(TextBoxNewHeader.Text))
{
Alert.Show("请输入新列名");
return;
}
int index = DropDownListHeaders.SelectedIndex;
headers[index] = TextBoxNewHeader.Text;
Session[GRID_COLUMN_HEADER] = headers;
PageContext.RegisterStartupScript(ActiveWindow.GetHideReference());
PageContext.Redirect(FetchRefreshUrl());
}
protected void btnCancel_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(ActiveWindow.GetHideReference());
}
}
}
说明:
1.从官方示例中可知,动态列的创建是在Page_Load或者Page_Init中完成的。为了触发这一事件,我们通过重定向Redirect来实现。
2.创建及修改的列名称存在Session中。
3.对于表格的中数据也可采用类似的方式实现,不过由于Session不能存太多的数据,所以数据量大时必须作相应的处理。比如借助数据库。
4.不论后台如何处理,在前端上呈现的都只能是html和js的代码。所以后端修改了界面后,是必须要刷新界面才能上去的。只是有的采用了直接刷新,有的采用了异步AJAX刷新。所以我们这里修改界面的标题,采用重定向刷新界面的方式来实现。
html 动态修改列名,FineUI之动态增加列及修改列的实现相关推荐
- mysql 修改列名和属性_mysql增加列修改列名列属性以及删除列
首先推荐一本初学者的书,一个小册子:<mysql必知必会>简介实用,权威:有点贵,昨天才买的. http://www.2cto.com/ebook/201112/30389.html 正文 ...
- python pandas rename_Python3 pandas库(10) 修改列名和索引rename()
有时候我们需要修改DataFrame的个别列名或者索引,避免重复.方便使用. rename()函数使用时比较简单. 现有一个DataFrame: 现在想要把'销售'改成'10月销售', '人员数量'改 ...
- c++ 获得文本修改时间_Aha Lottie | 动态修改 Lottie 中的文本
01. WHY 不少动画中,会带有一些业务数字,比如之前文章中提到的这段动画 动态文案 Lottie 动画示例https://www.zhihu.com/video/11994883462648258 ...
- Extjs 动态改变列名
列名与对应的值是动态改变的,也就是说要展示的列名可能随时改变. 首先选择了默认的列作为显示,在tbar中加入一个按钮弹出所有可能要显示的列名,选择后将对应的列名与值显示在grid中,例如 身份证号码 ...
- Alter操作(修改列名,修改列数据类型,增加列,删除列,增加列且设为主键及对默认值操作)
一.mysql (增加列,删除列,修改列:增加,删除,修改列的默认值) 增加列,删除列,修改列 1.修改列的数据类型 alter table patient modify column mood in ...
- JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案
JS动态修改页面EasyUI datebox不生效.EasyUI动态添加Class.EasyUI动态渲染解析解决方案 参考文章: (1)JS动态修改页面EasyUI datebox不生效.EasyUI ...
- java表格点击添加按钮一行_JavaScript_JQuery实现动态表格点击按钮表格增加一行,功能实现:点击添加按钮,表 - phpStudy...
JQuery实现动态表格点击按钮表格增加一行 功能实现:点击添加按钮,表格增加一行并给其name属性赋予的值,方便获取 点击删除,自动删除这一行 JQuery中定义一个count变量 var coun ...
- SQL修改列名,增加列,删除列语句的写法
1.修改数据表名 ALTER TABLE [表名.]OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME; 2.修改列名 ALTER TABLE [表名.]TABLE_NAM ...
- python为什么是动态语言_python为什么是动态语言
首先要理解什么是动态语言:通俗地说:能够在运行时修改自身程序结构的语言,就属于动态语言.那怎样才算是"运行时修改自身程序结构"呢?比如下面这几个例子都算:在运行时给某个类增加成员函 ...
最新文章
- Redis支持的5种数据类型
- 径向基函数插值(2)一维数据的插值
- 使用SAP iRPA Studio创建的本地项目,如何部署到SAP云平台上?
- LVS之VS/NAT搭建web集群实战!!!
- 简单的动画函数封装(1)
- 编程之美--高效率算出1的数目之扩展问题
- jsf教程_JSF教程
- Linux系统编程二:字符设备控制之点亮LED灯、控制蜂鸣器
- 想要内推字节跳动的同学看过来(含内推方式)
- ORACLE通过身份证号计算年龄
- piranha(注意iptables和selinux的问题)
- PID调节的C语言及MATLAB实现方法
- 深度学习(自然语言处理)RNN、LSTM、TextCNN
- 《后盾网Thinkphp5博客项目实战》最全
- WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的解决方法
- java xsd校验xml文件
- 优思学院|六西格玛管理常用的假设检验是什么?
- 计算机二级复习资料完整版
- 监听实时生成的双声道wav文件转文字
- C++ Primer Plus Chapter 4 --复合类型(笔记)