我将数据绑定到页面的gridview中以后,想通过匹配记录中某一列的值来查找到该记录,并将该记录的字体设置为粗体,该如何逐行读取gridview中的数据呢?我使用的是foreach循环,但是跟踪程序代码,发现该循环并没有执行,贴出循环代码
foreach (GridViewRow i in gvList.Rows)
                {
                      if (i.Cells[0].Text == "155")
                          i.Font.Bold = true;
                }请路过的高手解答,我的目的是通过匹配第一列的值,将某些符合条件的记录粗体显示

解决方案 »

  1.   

    foreach 没执行还要看你前面的代码,或是在哪个事件执行?
    .Cells[0].Text == //这样有问题吧,我是这样判断的,可以成功运行
    .Cells[0].Value ==
      

  2.   

    replace来控制
    gvList.Rows[0][0].cell["字体"].Resplace("<font>"+gvList.Rows[0][0].cell["字体"]+"</font>",gvList.Rows[0][0].cell["字体"]);
      

  3.   

    if (i.Cells[0].Text == "155")这句进去没有?还是说根本就没进foreach ?
      

  4.   

    根本就没进foreach,这个循环我是在页面加载事件里写的,程序运行正常,就是这段代码跳过了,跟踪调试发现根本没进循环
      

  5.   

    if (((Lable)i.Cells[0].Controls[0]).Text == "155")
    改成这样看看
      

  6.   

    我的程序流程是这样的,页面加载--绑定gridview--查找匹配记录--修改本行记录字体
      

  7.   


    你确认gvList.Rows不是空的?怎么没进去foreach?
      

  8.   

    <%# Eval("").ToString()=="155"?"<font..>"+Eval("")+"</font>":Eval("")%>
      

  9.   

    你写在那个事件里面在databinds或Cells相应的事件里面你代码都没执行,肯定是绑定的事件错了或没绑定到你写的那个方法
      

  10.   

    我设置的==155只是个测试,我的gridview显示列都是动态绑定的,可以更改设置要显示的列,所以在前台改可能不行
    我的原意是,在gridview的数据中逐行的读取,判断第一列的字段是否为某个值,如果是,则修改字体
      

  11.   

      在RowDataBound事件里面判断呢?    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.DataItemIndex == -1)
            {
                return;
            }
            if (e.Row.Cells[0].Text.Trim().ToString() == "")    
            {
                  e.Row.Cells[0].Font.......
            }
        }
      

  12.   

    只有这个循环代码没有执行,其他代码都正常运行,并且页面也能显示数据,不过没有粗体显示,这个循环是写在page_load事件里的