日期:2014-05-17  浏览次数:20444 次

在GridView中要使成绩一列小于60字体显示红色时出错
代码如下:
  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
  if (e.Row.RowType == DataControlRowType.DataRow)
  {  
  if (Convert.ToInt32(e.Row.Cells[6].Text.Trim()) <= 0
  || Convert.ToInt32(e.Row.Cells[6].Text.Trim()) > 60)
  {
  e.Row.Cells[6].ForeColor = System.Drawing.Color.Red;
  } 
  }

提示输入字符串出错。


------解决方案--------------------
e.Row.Cells[6].Text.Trim()是整型的字符串嘛?
看看e.Row.Cells[6].Text.Trim()值是什么?
C# code

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
  string test=e.Row.Cells[6].Text.Trim();//看看这里的值是什么?
  if (e.Row.RowType == DataControlRowType.DataRow)
  {  
  if (Convert.ToInt32(e.Row.Cells[6].Text.Trim()) <= 0
  || Convert.ToInt32(e.Row.Cells[6].Text.Trim()) < 60)
  {
  e.Row.Cells[6].ForeColor = System.Drawing.Color.Red;
  } 
  }

------解决方案--------------------
HTML code
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" onrowdatabound="gv_RowDataBound">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Label ID="lblGrade" runat="server" Text='<%#Eval("Grade") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
        </asp:GridView>
    </div>
    </form>