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 ...
随机推荐
- jQuery - 实时统计输入框输入个数(中文输入法适用)
经常在实时统计文本框输入多少字的时候,有时会出现不及时统计,特别是在中文输入法下. 为了实时准确统计,可以修改代码如下: $(function() { $("#txtT ...
- 如何使用 Java 中的数组
Java 中操作数组只需要四个步骤: 1. 声明数组 语法: 数据类型[ ] 数组名: 或者 数据类型 数组名[ ]: 其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简单地说,就是指 ...
- Python在centos下的安装
1.wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz默认下载到主目录下 2.tar xzf Python-2.6.6.tgz 3 ...
- 【DWT笔记】傅里叶变换与小波变换
[DWT笔记]傅里叶变换与小波变换 一.前言 我们经常接触到的信号,正弦信号,余弦信号,甚至是复杂的心电图.脑电图.地震波信号都是时域上的信号,我们也成为原始信号,但是通常情况下,我们在原始信号中得到 ...
- 【工作备忘】suricata
因为工作遇到的困难,我向suricata的某个作者发送了邮件. On Wed, Sep 11, 2013 at 8:22 AM, likeyi <929812468@qq.com> wro ...
- Linux下动态库生成和使用
Linux下动态库生成和使用 一.动态库的基本概念 1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态链接库是目标文件的集合,目标文件在动态链接库中 ...
- 通过扩展让ASP.NET Web API支持JSONP -摘自网络
同源策略(Same Origin Policy)的存在导致了“源”自A的脚本只能操作“同源”页面的DOM,“跨源”操作来源于B的页面将会被拒绝.同源策略以及跨域资源共享在大部分情况下针对的是Ajax请 ...
- Android通过tcpdump抓包
1. 手机要有root权限 2. 下载tcpdump http://www.strazzere.com/android/tcpdump 3. adb push c:\wherever_you_pu ...
- ubuntu 彻底删除软件包
找到此软件名称,然后sudo apt-get purge ......(点点为为程序名称),purge参数为彻底删除文件,然后sudo apt-get autoremove,sudo apt-get ...
- pd虚拟机死机怎么解决
最近在mac上使用pd虚拟机装win使用,今天发现pd中的win7虚拟机死机了,无论怎么点都没用,通过点击操作-关闭也不行,重启电脑也不行,后来找到一种办法可以重启虚拟机. 1.先通过菜单中止虚拟机, ...