首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

在GridView中要使成绩一列小于60字体展示红色时出错

2013-01-23 
在GridView中要使成绩一列小于60字体显示红色时出错 代码如下:protected void GridView1_RowDataBound(obj

在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()值是什么?


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;
  } 
  }

[解决办法]
    <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>

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindGrade();
        }
    }

    protected void BindGrade()


    {
        var list = new[]{ 
            new{Grade=30},
            new{Grade=52},
            new{Grade=55},
            new{Grade=75},
            new{Grade=60},
            new{Grade=80},
            new{Grade=50}
        }.ToList();
        gv.DataSource = list;
        gv.DataBind();
    }
    protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label lblGrade = e.Row.FindControl("lblGrade") as Label;
            int grade = Convert.ToInt32(lblGrade.Text);
            if (grade < 60)
            {
                lblGrade.ForeColor = System.Drawing.Color.Red;
            }
        }
    }


复制可用

热点排行