foreach (GridViewRow i in gvList.Rows)
{
if (i.Cells[0].Text == "155")
i.Font.Bold = true;
}
请路过的高手解答,我的目的是通过匹配第一列的值,将某些符合条件的记录粗体显示
16 个解决方案
#1
#2
在CellFormatting事件中处理
#3
foreach 没执行还要看你前面的代码,或是在哪个事件执行?
.Cells[0].Text == //这样有问题吧,我是这样判断的,可以成功运行
.Cells[0].Value ==
.Cells[0].Text == //这样有问题吧,我是这样判断的,可以成功运行
.Cells[0].Value ==
#4
replace来控制
gvList.Rows[0][0].cell["字体"].Resplace("<font>"+gvList.Rows[0][0].cell["字体"]+"</font>",gvList.Rows[0][0].cell["字体"]);
gvList.Rows[0][0].cell["字体"].Resplace("<font>"+gvList.Rows[0][0].cell["字体"]+"</font>",gvList.Rows[0][0].cell["字体"]);
#5
if (i.Cells[0].Text == "155")
这句进去没有?还是说根本就没进foreach ?
这句进去没有?还是说根本就没进foreach ?
#6
根本就没进foreach,这个循环我是在页面加载事件里写的,程序运行正常,就是这段代码跳过了,跟踪调试发现根本没进循环
#7
if (((Lable)i.Cells[0].Controls[0]).Text == "155")
改成这样看看
改成这样看看
#8
我的程序流程是这样的,页面加载--绑定gridview--查找匹配记录--修改本行记录字体
#9
你确认gvList.Rows不是空的?怎么没进去foreach?
#10
<%# Eval("").ToString()=="155"?"<font..>"+Eval("")+"</font>":Eval("")%>
#11
你写在那个事件里面
在databinds或Cells相应的事件里面
你代码都没执行,肯定是绑定的事件错了或没绑定到你写的那个方法
在databinds或Cells相应的事件里面
你代码都没执行,肯定是绑定的事件错了或没绑定到你写的那个方法
#12
谢谢,不过我跟踪程序的时候,发现不是这个问题,即使我if(1==1)也没用,因为根本没有进入循环
#13
我设置的==155只是个测试,我的gridview显示列都是动态绑定的,可以更改设置要显示的列,所以在前台改可能不行
我的原意是,在gridview的数据中逐行的读取,判断第一列的字段是否为某个值,如果是,则修改字体
#14
在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.......
}
}
#15
只有这个循环代码没有执行,其他代码都正常运行,并且页面也能显示数据,不过没有粗体显示,这个循环是写在page_load事件里的
#16
谢谢,你的方法是正确的,我没有想到在绑定的同时修改字体,我一直是打算绑定完数据之后再逐行查找匹配然后修改。。。。问题解决了
#1
#2
在CellFormatting事件中处理
#3
foreach 没执行还要看你前面的代码,或是在哪个事件执行?
.Cells[0].Text == //这样有问题吧,我是这样判断的,可以成功运行
.Cells[0].Value ==
.Cells[0].Text == //这样有问题吧,我是这样判断的,可以成功运行
.Cells[0].Value ==
#4
replace来控制
gvList.Rows[0][0].cell["字体"].Resplace("<font>"+gvList.Rows[0][0].cell["字体"]+"</font>",gvList.Rows[0][0].cell["字体"]);
gvList.Rows[0][0].cell["字体"].Resplace("<font>"+gvList.Rows[0][0].cell["字体"]+"</font>",gvList.Rows[0][0].cell["字体"]);
#5
if (i.Cells[0].Text == "155")
这句进去没有?还是说根本就没进foreach ?
这句进去没有?还是说根本就没进foreach ?
#6
根本就没进foreach,这个循环我是在页面加载事件里写的,程序运行正常,就是这段代码跳过了,跟踪调试发现根本没进循环
#7
if (((Lable)i.Cells[0].Controls[0]).Text == "155")
改成这样看看
改成这样看看
#8
我的程序流程是这样的,页面加载--绑定gridview--查找匹配记录--修改本行记录字体
#9
你确认gvList.Rows不是空的?怎么没进去foreach?
#10
<%# Eval("").ToString()=="155"?"<font..>"+Eval("")+"</font>":Eval("")%>
#11
你写在那个事件里面
在databinds或Cells相应的事件里面
你代码都没执行,肯定是绑定的事件错了或没绑定到你写的那个方法
在databinds或Cells相应的事件里面
你代码都没执行,肯定是绑定的事件错了或没绑定到你写的那个方法
#12
谢谢,不过我跟踪程序的时候,发现不是这个问题,即使我if(1==1)也没用,因为根本没有进入循环
#13
我设置的==155只是个测试,我的gridview显示列都是动态绑定的,可以更改设置要显示的列,所以在前台改可能不行
我的原意是,在gridview的数据中逐行的读取,判断第一列的字段是否为某个值,如果是,则修改字体
#14
在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.......
}
}
#15
只有这个循环代码没有执行,其他代码都正常运行,并且页面也能显示数据,不过没有粗体显示,这个循环是写在page_load事件里的
#16
谢谢,你的方法是正确的,我没有想到在绑定的同时修改字体,我一直是打算绑定完数据之后再逐行查找匹配然后修改。。。。问题解决了