在空的GridView中顯示Header、Footer列@ASP.Net
来源:互联网 发布:房地产前景知乎 编辑:程序博客网 时间:2024/06/16 10:00
因為GridView內建修改、刪除之功能,所以很多人利用GridView的Footer列,加入控制項,作為新增的功能。但因為GridView在沒有資料的時候,除了Empty Template外,不會顯示Header和Footer列,所以新增的功能就無效了。
有人直接利用Empty Template,加入FormView或DetailView作為新增的功能,但我覺得畫面上的不一致,容易造成使用者的困擾,執意要找出利用Footer列的方式。為此用Google找了一個晚上和早上,再加上 try 了半天,終於讓我摸索出最佳答案了。
方法是在GridView的PreRender事件中,判斷 Rows.Count 是否等於0,再執行下面這個函數。這樣利用Footer列做為新增資料的功能,就萬無一失了。
不過在執行階段時,新增資料後自動重新整理本頁時,因為GridView的DataSource還是我們虛擬的DataTable,因此不會顯示新增的記錄,故需在GridView1_Load中加入一段,改回原本的SqlDataSource。
有人直接利用Empty Template,加入FormView或DetailView作為新增的功能,但我覺得畫面上的不一致,容易造成使用者的困擾,執意要找出利用Footer列的方式。為此用Google找了一個晚上和早上,再加上 try 了半天,終於讓我摸索出最佳答案了。
方法是在GridView的PreRender事件中,判斷 Rows.Count 是否等於0,再執行下面這個函數。這樣利用Footer列做為新增資料的功能,就萬無一失了。
不過在執行階段時,新增資料後自動重新整理本頁時,因為GridView的DataSource還是我們虛擬的DataTable,因此不會顯示新增的記錄,故需在GridView1_Load中加入一段,改回原本的SqlDataSource。
public static void renderEmptyGridView(GridView EmptyGridView, string FieldNames)
{
//將GridView變成只有Header和Footer列,以及被隱藏的空白資料列
DataTable dTable = new DataTable();
char[] delimiterChars = {','};
string[] colName = FieldNames.Split(delimiterChars);
foreach (string myCol in colName)
{
DataColumn dColumn = new DataColumn(myCol.Trim());
dTable.Columns.Add(dColumn);
}
DataRow dRow = dTable.NewRow();
foreach (string myCol in colName)
{
dRow[myCol.Trim()] = DBNull.Value;
}
dTable.Rows.Add(dRow);
EmptyGridView.DataSourceID = null;
EmptyGridView.DataSource = dTable;
EmptyGridView.DataBind();
EmptyGridView.Rows[0].Visible = false;
}
protected void GridView1_PreRender(object sender, EventArgs e)
{
if (GridView1.Rows.Count == 0)
{
renderEmptyGridView(GridView1, "FLOW_UID, FLOW_CODE, FLOW_NAME, FLOW_TYPE");
}
}
protected void GridView1_Load(object sender, EventArgs e)
{
//回復原本GridView的資料連結
GridView1.DataSource = null;
GridView1.DataSourceID = "SqlDataSource1";
}
- 在空的GridView中顯示Header、Footer列@ASP.Net
- ASP GridView绑定数据为空时,显示footer和header,以实现添加
- GridView空记录时显示Header和Footer
- 可以添加Footer和Header的GridView
- 使用RecyclerView实现带Header和Footer的GridView
- Code52在ASP.NET中合并GridView的两个列标题
- 如何在asp.net中获取GridView隐藏列的值?
- Android GridView添加Header和Footer组件
- ASP.NET 2.0 中动态添加 GridView 模板列的...
- ASP.net 用CSS 来隐藏 GridView 的列
- asp.net中gridview数据相同行的列合并
- asp.net GridView设置每一列的对齐方式
- ASP.net中修改gridview每一列的宽度
- ASP.NET 中 GridView 数值列 小数点位数 的控制
- asp.net 获取Gridview隐藏列的值 整理中
- Asp.net中GridView的跳转列绑定格式
- Asp.net 动态控制GridView列的显示和隐藏
- asp.net gridview列宽固定的几种方法
- 设置Table的细边框
- 走近汇编理解与内核编程
- Clutter的简介
- 谋划(14)
- 周记08-11-09(08-11-18补)
- 在空的GridView中顯示Header、Footer列@ASP.Net
- 如何打开IIS信息服务管理器
- C++的引用(一)
- Linux邮件服务系统的搭建(一)
- 计算器c#实现
- SQL 变量的使用
- Request.ServerVariables完整参考
- SQL 2005的SSIS与Oracle的迁移性能
- STRCPY,MEMSET,MEMCPY三者的区别