ASP.NET 最佳DataGrid读取单元格的值
采用asp:BoundColumn列
前台:
<asp:BoundColumn DataField="UserID" HeaderText="工号">
后台:
foreach (DataGridItem item in dataGrid.Items)
{
string userID = item.Cells[].Text; }
这样的弊端就是如果列的索引发生变化,就导致读取不到对应的列所对应的单元格值。
最佳方法应该采用asp:TemplateColumn模板列的方式
参考:http://blog.csdn.net/aiouwen521/article/details/8490742
前台:
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox Runat="server" ID="txtID" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
后台:
读取DataGrid控件TextBox值 foreach(DataGrid dgi in yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Text....
}
针对TemplateColumn 优雅写法:
List<RollLeaveDetailCom> rollLeaveDetailComList = new List<RollLeaveDetailCom>();
foreach (DataGridItem item in this.gridDetails.Items)
{
RollLeaveDetailCom leaveDetailCom = new RollLeaveDetailCom();
leaveDetailCom.StartDate = Convert.ToDateTime(item.ValueOf("txtStartDate"));
leaveDetailCom.StartTime = item.ValueOf("txtStartTime");
leaveDetailCom.EndDate = Convert.ToDateTime(item.ValueOf("txtEndDate"));
leaveDetailCom.EndTime = item.ValueOf("txtEndTime");
leaveDetailCom.TotalDay = item.ValueOf("txtTotalTime").Replace("天", "").ToInt();
leaveDetailCom.SalaryDay = item.ValueOf("txtSalaryTime").Replace("天", "").ToInt();
rollLeaveDetailComList.Add(leaveDetailCom);
}
return rollLeaveDetailComList; /// <summary>
/// 扩展 DataGridItem, 取其内部控件的值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="item"></param>
/// <param name="ctrlId"></param>
/// <returns></returns>
public static string ValueOf(this DataGridItem item, string ctrlId)
{
if (item == null || string.IsNullOrEmpty(ctrlId)) return string.Empty;
Control ctrl = item.FindControl(ctrlId);
string result = string.Empty;
if (ctrl is TextBox)
result = (ctrl as TextBox).Text;
else if (ctrl is HyperLink)
result = (ctrl as HyperLink).Text;
else if (ctrl is LinkButton)
result = (ctrl as LinkButton).Text;
else if (ctrl is HiddenField)
result = (ctrl as HiddenField).Value;
else if (ctrl is DropDownList)
result = (ctrl as DropDownList).SelectedValue;
return result;
}
注意:BoundColumn列转换为TemplateColumn 可以通过DataGrid的属性编辑器可视化UI设计窗口进行转换。
ASP.NET 最佳DataGrid读取单元格的值的更多相关文章
- easyui前台改变datagrid某单元格的值
有时候前台完成某个操作后要修改datagrid的值, 也许这个datagrid是没有保存的, 所以要修改后才能传递到后台; 也许要其他操作过后才需请求后台; 这些情况都需要前台对datagrid的单元 ...
- DataGrid获取单元格的值
string str = (dataGrid.Columns[0].GetCellContent(dataGrid.Items[0]) as TextBlock).Text;
- Easyui datagrid 扩展单元格textarea editor
datagrid 扩展单元格textarea editor by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 问题描述 如下,在没有扩展的情况下,初始化如下 手 ...
- easyui datagrid 合并单元格
整理以前做的东西,这个合并单元格的问题再新浪博客也写过了..... 下面这段代码是列表数据 //载入排放系数管理报表数据 function LoadEmissionReportData() { //获 ...
- easyui datagrid单击单元格选择此列
示例代码实现单击jquery easyui datagrid的单元格时,取消datagrid默认选中高亮此行的样式,改为选中单击的单元格所在的列,高亮此列上的所有单元格.可以配置全局single变量, ...
- 扩展jquery easyui datagrid编辑单元格
扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...
- Silverlight的DataGrid合并单元格
现在也不知道还有没有同学做Silverlight开发了,我是一个Silverlight菜鸟,遇到问题也很难百度查到.就简单的记录一下这两天遇到的问题,并做了一个简单的小Demo,希望能够帮助到其他同学 ...
- JS实现EasyUI ,Datagrid,合并单元格功能
为了实现datagrid的合并单元格效果,datagrid的数据加载方式肯定是要写在JS文件内部的. 一:在JS内部添加Datagrid数据加载方法如下: $("#id").dat ...
- Easyui的datagrid的行编辑器Editor中添加事件(修改某个单元格带出其他单元格的值)
项目中有个datagrid需要编辑行时,用到Editor的属性,那么如何添加一个事件 问题:同一个编辑行中的某个单元格值改变时,修改其他单元格的值 页面用到的datagrid <table id ...
随机推荐
- RequireJS入门(二) 转
上一篇是把整个jQuery库作为一个模块.这篇来写一个自己的模块:选择器. 为演示方便这里仅实现常用的三种选择器id,className,attribute.RequireJS使用define来定义模 ...
- GIT 命令 操作 记录
1.git pull时冲突的解决 1.git stash 2.git pull 3.git stash pop stash@{0} 4.修改冲突 5.git add . 6.git commit 7. ...
- Yii笔记---redirect重定向
Yii的redirect方法在CControler与CHttpRequest之中都有被定义,CController中的redirect调用了CHttpRequest中的redirect方法.我们平常调 ...
- cocos2dx 水波纹Shader
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////// ...
- HTML 学习进度备忘
书签:”HTML 高级教程“及后面的内容尚未学习,另外跳过的内容有待跟进 __________________ 学习资源:W3School. 开始时间:2013.11.20 简述:此网址做为学习教程相 ...
- Ansible的循环
Ansible的循环 1. 前言 有可能在一个任务中,可能要做很多事情,例如创建多个用户,安装很多个包等,那么就有可能用到循环. 2. 标准循环 重复的任务可以用下面的方式: ...
- 【C#】用C#通过读取数据库方式读取CSV文件
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; names ...
- Careerup上的简历模板
So this is what a GOOD resume look like http://www.careercup.com/resume (需FQ)
- c/c++工程中外部头文件及库添加方法
在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录. 2.添加文件引用 ...
- JavaScript高级程序设计(第三版)第三章 基本概念
3.3 变量 在使用var声明但未对其加以初始化时,这个变量的值就是undefinded. var message; //这个变量声明之后默认取得了undefinded值 //下面这个变量并没有声明 ...