在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之动态增加列及修改列的实现相关推荐

  1. mysql 修改列名和属性_mysql增加列修改列名列属性以及删除列

    首先推荐一本初学者的书,一个小册子:<mysql必知必会>简介实用,权威:有点贵,昨天才买的. http://www.2cto.com/ebook/201112/30389.html 正文 ...

  2. python pandas rename_Python3 pandas库(10) 修改列名和索引rename()

    有时候我们需要修改DataFrame的个别列名或者索引,避免重复.方便使用. rename()函数使用时比较简单. 现有一个DataFrame: 现在想要把'销售'改成'10月销售', '人员数量'改 ...

  3. c++ 获得文本修改时间_Aha Lottie | 动态修改 Lottie 中的文本

    01. WHY 不少动画中,会带有一些业务数字,比如之前文章中提到的这段动画 动态文案 Lottie 动画示例https://www.zhihu.com/video/11994883462648258 ...

  4. Extjs 动态改变列名

    列名与对应的值是动态改变的,也就是说要展示的列名可能随时改变. 首先选择了默认的列作为显示,在tbar中加入一个按钮弹出所有可能要显示的列名,选择后将对应的列名与值显示在grid中,例如 身份证号码  ...

  5. Alter操作(修改列名,修改列数据类型,增加列,删除列,增加列且设为主键及对默认值操作)

    一.mysql (增加列,删除列,修改列:增加,删除,修改列的默认值) 增加列,删除列,修改列 1.修改列的数据类型 alter table patient modify column mood in ...

  6. JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案

    JS动态修改页面EasyUI datebox不生效.EasyUI动态添加Class.EasyUI动态渲染解析解决方案 参考文章: (1)JS动态修改页面EasyUI datebox不生效.EasyUI ...

  7. java表格点击添加按钮一行_JavaScript_JQuery实现动态表格点击按钮表格增加一行,功能实现:点击添加按钮,表 - phpStudy...

    JQuery实现动态表格点击按钮表格增加一行 功能实现:点击添加按钮,表格增加一行并给其name属性赋予的值,方便获取 点击删除,自动删除这一行 JQuery中定义一个count变量 var coun ...

  8. SQL修改列名,增加列,删除列语句的写法

    1.修改数据表名 ALTER TABLE [表名.]OLD_TABLE_NAME RENAME TO NEW_TABLE_NAME; 2.修改列名 ALTER TABLE [表名.]TABLE_NAM ...

  9. python为什么是动态语言_python为什么是动态语言

    首先要理解什么是动态语言:通俗地说:能够在运行时修改自身程序结构的语言,就属于动态语言.那怎样才算是"运行时修改自身程序结构"呢?比如下面这几个例子都算:在运行时给某个类增加成员函 ...

最新文章

  1. Redis支持的5种数据类型
  2. 径向基函数插值(2)一维数据的插值
  3. 使用SAP iRPA Studio创建的本地项目,如何部署到SAP云平台上?
  4. LVS之VS/NAT搭建web集群实战!!!
  5. 简单的动画函数封装(1)
  6. 编程之美--高效率算出1的数目之扩展问题
  7. jsf教程_JSF教程
  8. Linux系统编程二:字符设备控制之点亮LED灯、控制蜂鸣器
  9. 想要内推字节跳动的同学看过来(含内推方式)
  10. ORACLE通过身份证号计算年龄
  11. piranha(注意iptables和selinux的问题)
  12. PID调节的C语言及MATLAB实现方法
  13. 深度学习(自然语言处理)RNN、LSTM、TextCNN
  14. 《后盾网Thinkphp5博客项目实战》最全
  15. WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的解决方法
  16. java xsd校验xml文件
  17. 优思学院|六西格玛管理常用的假设检验是什么?
  18. 计算机二级复习资料完整版
  19. 监听实时生成的双声道wav文件转文字
  20. C++ Primer Plus Chapter 4 --复合类型(笔记)

热门文章

  1. 简述java语言特点
  2. 经纬度对象的投影转换。
  3. Taro API封装
  4. docxtpl操作word文件
  5. window7安装hadoop2.7.5
  6. 【杂谈】FilterChain相关知识整理
  7. 技术原创|一文读懂图遍历算法以及图计算应用
  8. 解决flash插件被谷歌屏蔽
  9. excel自定义表格poi导出
  10. 新娘结婚程序c语言,结婚当日流程轻松应对婚礼当天的繁杂程序