在项目中,我再次用到了VS2003的DataGrid控件进行数据显示。
根据要求,我需要在第8列将MSSQL2000中的varchar类型的数据"0"与"1"显示成"未传送"与"已传送"
于是我便在DataGrid与DataSet进行DataBind()后,再用for循环进行替换:

myDataGrid.DataSource=myDataSet;
myDataGrid.DataBind();
for(int i=0;i<myDataSet.Tables[0].Rows.Count;i++)
{
   if(myDataGrid.Items[i].Cells[7].Text=="0")
   {
      myDataGrid.Items[i].Cells[7].Text="未传送";
   }
   else
   {
      myDataGrid.Items[i].Cells[7].Text="已传送";
   }
}

运行没有问题,于是我接着做DataGrid的分页功能,将页面设置成20行,并添加事件:

myDataGrid.CurrentPageIndex = e.NewPageIndex;
         
myDataGrid.DataSource=myDataSet;
myDataGrid.DataBind();

再一运行,报错了。显示大概是前面用for循环进行替换超出index范围值。
怎么办?我立刻想到了两种办法:
1.直接把数据库中的varchar类型的数据"0"与"1"更改成"未传送"与"已传送"
2.用模板列与DataBinder.Eval进行更改绑定(我选择此方法)
.aspx

<asp:TemplateColumn HeaderText="传递状态">
   <ItemTemplate>
      <asp:Label id="sendLabel" runat="server" Text='<%#str_Mark(DataBinder.Eval(Container,"DataItem.mark").ToString())%>'>
      </asp:Label>
   </ItemTemplate>
</asp:TemplateColumn>

.aspx.cs

//修改DataGrid 的 Mark 字段的显示
public string str_Mark(string strSign)
{
   string strMassage = "";
   if(strSign == "0")
   {
      strMassage = "<font color='red'>"+"未传送"+"</font>";                
   }
   else if(strSign == "1")
   {
      strMassage = "<font color='green'>"+"已传送"+"</font>";            
   }
   return strMassage;
}

以前看了一篇文章,说Bind要比Eval的功能和性能要好,大家也可以进行一些更改替换。
当然,如果大家有比我更好的解决办法,不吝赐教!

作者: XuGang   网名:钢钢
出处: http://xugang.cnblogs.com
声明: 本文版权归作者和博客园共有。转载时必须保留此段声明,且在文章页面明显位置给出原文连接地址! 本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2007/11/29/976571.html,如需转载请自行联系原作者

关于DataGrid数据绑定后对字段进行替换的问题与办法相关推荐

  1. ntext字段的替换处理示例--全表替换

    Mission 1 : 根据需要,将数据库存储文章内容的字段中的域名www.a.com.cn 替换为 www.b.com.cn. 如此典型的问题 先看SQL server的联机手册, USE Nort ...

  2. SQL text字段的替换处理(无法批量更新,写法记录)

    注: SQL2005以上版本直接使用varchar(max)的replace即可 此处只是记录一种写法 /*--text字段的替换处理  --*/  --创建数据测试环境  create   tabl ...

  3. jquery easyui dataGrid动态改变排序字段名

    2019独角兽企业重金招聘Python工程师标准>>> jquery easyui dataGrid 动态改变排序字段名,一般情况下,在使用的时候,我们会点击相应字段进行排序, 这里 ...

  4. 按钮提交在url后添加字段_在输入字段上定向单击“清除”按钮(X)

    按钮提交在url后添加字段 jQuery makes it easy to get your project up and running. Though it's fallen out of fav ...

  5. mysql降序后去重_Mysql 数据记录去重后按字段排序

    实现效果:去重-取最新的-排序 例子 : 按用户ID获取历史记录中某个人的记录,要求非重复的且每条只获取最新的,同时按添加时间倒序排列的 实现 :SELECT * FROM ( SELECT * FR ...

  6. ntext字段的替换处理示例--全表替换(作者:邹建)

    --ntext字段的替换处理示例--全表替换 --测试数据 create table test(id varchar(3),txt ntext) insert into test select '1' ...

  7. EAS BOS 新建单据后新增字段

    EAS BOS 新建单据后新增字段 1.在新建的单据界面上单击右键,选择字段管理,然后出现下图界面,然后点击新增字段 2.因为每个字段的类型不一样,所以选择的时候需要注意. F7基础资料 类型 已有基 ...

  8. Mysql某个字段内容替换(字符串中的一部分内容替换) sql

    Mysql 某个字段内容替换 问题描述: 将某一个字段的数据内容中的一部分替换:如图 数据量大情况下可以进行批量替换会很方便快捷 问题解决 sql函数: INSERT(s1,x,len,s2) 字符串 ...

  9. Oracle数据库在指定字段后新增字段

    记录一下数据库中为表增加字段,且在指定字段后新增: mysql数据库的话比较简单通过一下sql语句即可实现: -- 为表t在B字段后新增字段 alter table t add column fild ...

最新文章

  1. 五行塔怎么吃第五个_红毛丹怎么吃 吃红毛丹的五个好处
  2. Tomcat7启动报Error listenerStart错误--转载
  3. 数据结构导论初步理解
  4. 音视频技术开发周刊 | 187
  5. C# 获取配置文件节点值
  6. Android之RxJava(一)
  7. 【报告分享】中国城市人工智能发展指数报告.pdf(附下载链接)
  8. jquery获取元素索引
  9. shell命令wc,md5sum,basename
  10. ffmpeg视频播放、格式转化、缩放等命令
  11. MATLAB把型线图画静水力曲线,静水力曲线计算与绘制指导书
  12. CentOS修改IP地址
  13. 微信小程序怎么开店铺
  14. html打印预览空白,win7系统下使用IE浏览器预览打印页面时显示页面空白
  15. 英国四高校携手开展智能传感器系统研究
  16. 30日21时:上海铁路局通报列车最新晚点信息
  17. TCP系列39—拥塞控制—2、拥塞相关算法及基础知识
  18. 5月24日到5月30日
  19. 现有的画笔和创建自己的画笔6zhongGDI
  20. 网卡流量实时查看的三种方法

热门文章

  1. linux数据污点标记,Taints和Tolerations(污点和容忍)
  2. 一次请求到php都经过了哪些步骤,PHP高级之一次请求处理过程或生命周期详解
  3. python如何在官网下载1005无标题,如何安装python cairo?
  4. 安可与普通测评的区别_PRINCE王子TeXtreme Tour 100系列网球拍测评(文末有福利)
  5. 三层架构项目如何发布_以k8s集群管理为例,大牛教你如何设计优秀项目架构
  6. python if and_python有趣用法汇总(持续更新)
  7. Python:tkinter滚动抽奖器
  8. 全球及中国微电网市场规模容量及建设运营模式分析报告2021年版
  9. haddler处理队列 netty_如何实现延迟队列
  10. vue 非template模式_vue-template-compiler 还能这么用