e.Row.Cells[i].Text获取不到值,(DataRowView)e.Row.DataItem[i].ToString()当i>9时获取不到值 本帖最后由 Foris 于 2010-09-06 20:36:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 10列 索引从0-9<%# Eval("qtfy").ToString("1200")?"<font color= \"red\">" + Eval("")+ "</font >":""%> 你最好myrows["字段名字"].ToString()这种方法取数据myrows[9]是数据源的字段数,不是GridView的列数当使用模板列时,应该使用e.Row.FindControl查找,而不是e.Row.Cells[i]. 找到问题了,正确代码如下:前端还是使用模板列,不用定义指定ID的Label:<asp:TemplateField HeaderText="其它费用"> <ItemTemplate> <%# Eval("qtfy")%> </ItemTemplate> <ItemStyle Width="150px" /></asp:TemplateField>后端GridView1_RowDataBound处理代码: if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType==DataControlRowType.EmptyDataRow){ DataRowView myrows = (DataRowView)e.Row.DataItem; if (myrows["stop"].ToString().Equals("0")) { for (int i = 0; i < 14; i++) e.Row.Cells[i].ForeColor = System.Drawing.Color.Red; }}结论:使用模板列时,(DataRowView)e.Row.DataItem["数据库列名"].ToString()可以获取到GridView的值。e.Row.Cells[i].Text获取不到值,但e.Row.Cells[i].Text可以被赋值,前端GridView样式也可以通过设置e.Row.Cells[i]改变GridView #4楼 得分:0回复于:2010-09-06 20:54:42找到问题了,正确代码如下:前端还是使用模板列,不用定义指定ID的Label:<asp:TemplateField HeaderText="其它费用"> <ItemTemplate> <%# Eval("qtfy")%> </ItemTemplate> <ItemStyle Width="150px" /></asp:TemplateField>后端GridView1_RowDataBound处理代码: if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType==DataControlRowType.EmptyDataRow){ DataRowView myrows = (DataRowView)e.Row.DataItem; if (myrows["stop"].ToString().Equals("0"))//'stop'是数据库列名,'0'也是数据库中改列的值 { for (int i = 0; i < 14; i++) e.Row.Cells[i].ForeColor = System.Drawing.Color.Red; }}结论:使用模板列时,(DataRowView)e.Row.DataItem["数据库列名"].ToString()可以获取到GridView的值。e.Row.Cells[i].Text获取不到值,但e.Row.Cells[i].Text可以被赋值,前端GridView样式也可以通过设置e.Row.Cells[i]改变GridView 排序功能 保存页面状态问题 Jquery easy UI DataGridi 在IIS上显示不了数据 高分求解:Vista上开发asp.net的问题 gridview的ItemTemplate textbox控件的密码问题 使用cookie的时候怎么保证安全,防止欺骗。 关于数据库的个数,大家进来给个意见 如何计算数学公式的结果 数据不正确,在线等解决方案 【C#怎么时间相减】已经有2个时间,2个时间相减小于20天的时候,则提示“您还有20天到期”【C#怎么时间相减】 Totl这一列=id+code+name.
<%# Eval("qtfy").ToString("1200")?"<font color= \"red\">" + Eval("")+ "</font >":""%>
myrows["字段名字"].ToString()
这种方法取数据myrows[9]是数据源的字段数,不是GridView的列数当使用模板列时,应该使用e.Row.FindControl查找,而不是e.Row.Cells[i].
找到问题了,正确代码如下:前端还是使用模板列,不用定义指定ID的Label:
<asp:TemplateField HeaderText="其它费用">
<ItemTemplate>
<%# Eval("qtfy")%>
</ItemTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>后端GridView1_RowDataBound处理代码:
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType==DataControlRowType.EmptyDataRow)
{
DataRowView myrows = (DataRowView)e.Row.DataItem;
if (myrows["stop"].ToString().Equals("0"))
{
for (int i = 0; i < 14; i++)
e.Row.Cells[i].ForeColor = System.Drawing.Color.Red;
}
}
结论:
使用模板列时,(DataRowView)e.Row.DataItem["数据库列名"].ToString()可以获取到GridView的值。e.Row.Cells[i].Text获取不到值,但e.Row.Cells[i].Text可以被赋值,前端GridView样式也可以通过设置e.Row.Cells[i]改变GridView
找到问题了,正确代码如下:前端还是使用模板列,不用定义指定ID的Label:
<asp:TemplateField HeaderText="其它费用">
<ItemTemplate>
<%# Eval("qtfy")%>
</ItemTemplate>
<ItemStyle Width="150px" />
</asp:TemplateField>后端GridView1_RowDataBound处理代码:
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType==DataControlRowType.EmptyDataRow)
{
DataRowView myrows = (DataRowView)e.Row.DataItem;
if (myrows["stop"].ToString().Equals("0"))//'stop'是数据库列名,'0'也是数据库中改列的值 {
for (int i = 0; i < 14; i++)
e.Row.Cells[i].ForeColor = System.Drawing.Color.Red;
}
}
结论:
使用模板列时,(DataRowView)e.Row.DataItem["数据库列名"].ToString()可以获取到GridView的值。e.Row.Cells[i].Text获取不到值,但e.Row.Cells[i].Text可以被赋值,前端GridView样式也可以通过设置e.Row.Cells[i]改变GridView