我从数据库里面提取出这样的一组数据:姓名 科目 积分,如果积分低于60分的让它显示红色!

解决方案 »

  1.   

    Filtrate.cs代码:using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.Drawing;public partial class Filtrate : System.Web.UI.Page
    {
        SqlConnection sqlcon;
        SqlCommand sqlcom;
        string strCon = "Data Source=(local);Database=temp;Uid=sa;Pwd=123";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bind();        }
        }
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            bind();
        }
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            sqlcon = new SqlConnection(strCon);
            string sqlstr = "update test set name='"
                + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',subject='"
                + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',number='"
                + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "' where id='"
                + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
            sqlcom = new SqlCommand(sqlstr, sqlcon);
            sqlcon.Open();
            sqlcom.ExecuteNonQuery();
            sqlcon.Close();
            GridView1.EditIndex = -1;
            bind();
        }
        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            bind();
        }
        public void bind()
        {
            string sqlstr = "select top 10 * from test";
            sqlcon = new SqlConnection(strCon);
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds, "test");
            GridView1.DataSource = myds;
            GridView1.DataKeyNames = new string[] { "id" };
            GridView1.DataBind();
            for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
            {
                DataRowView mydrv = myds.Tables["test"].DefaultView[i];
                string score = Convert.ToString(mydrv["分数"]);
                if (Convert.ToDouble(score) < 60.00)//这里根据具体情况设置可能ToInt32等等            {
                    GridView1.Rows[i].Cells[4].BackColor = System.Drawing.Color.Red;
                }
            }
            sqlcon.Close();
        }
    }Filtrate.aspx代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title>GridView 过滤 </title>
    </head>
    <body >
        <form id="form1" runat="server">
        <div >
                       <asp:GridView ID="GridView1" runat="server"    AutoGenerateColumns="False" CellPadding="3" OnRowEditing="GridView1_RowEditing"
                            OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" >
                            <FooterStyle BackColor="White" ForeColor="#000066" />
                            <Columns>
                                <asp:CommandField HeaderText="编辑" ShowEditButton="True" />
                                <asp:BoundField DataField="id" HeaderText="编号" ReadOnly="True" />
                                <asp:BoundField DataField="name" HeaderText="姓名" />
                                <asp:BoundField DataField="subject" HeaderText="科目" />
                                 <asp:BoundField DataField="number" HeaderText="分数" DataFormatString="{0:C}" HtmlEncode="false"/>
                               
                            </Columns>
                            <RowStyle ForeColor="#000066" />
                            <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" CssClass="ms-formlabel DataGridFixedHeader"/>
                            <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
                        </asp:GridView>
            </div>    </form>
    </body>
    </html>
      

  2.   

    我的博客:http://blog.csdn.net/WanTianwen,里面的基础知识比较多!
      

  3.   

    最最关键的也就一个:protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                DataSet1.ScoreTableRow row = (DataSet1.ScoreTableRow)((System.Data.DataRowView)e.Row.DataItem).Row;
                if (row.积分 < 60)
                    e.Row.CssClass = "red";
            }
    }
    css red可以在.aspx文件的<head>内,或者stylesheet.css外部文件定义后引用。
    <style type="text/css">
            .red { background-color:Red; }
    </style>------------------------------------------
    1、建立数据库访问层(Data Access Layer)
    你可以生成一个强类型的数据集,也就是在项目中添加一个DataSet,在这个例子中是DataSet1, 进行配置让它返回表内容。方法名为:GetScores()
    2、建立业务逻辑层(Business Logic Layer)
    然后在项目中增加一Class,作为Business Logic Layer
    using System.ComponentModel;/// <summary>
    /// Class1 的摘要说明
    /// </summary>
    [DataObject(true)]
    public class Class1
    {
        private DataSet1TableAdapters.ScoreTableTableAdapter _scoreAdapter;
        protected DataSet1TableAdapters.ScoreTableTableAdapter Adapter
        {
            get
            {
                if (_scoreAdapter == null)
                    _scoreAdapter = new DataSet1TableAdapters.ScoreTableTableAdapter();            return _scoreAdapter;
            }
        }
       [DataObjectMethod(DataObjectMethodType.Select, true)]
        public DataSet1.ScoreTableDataTable GetScores()
        {
            return Adapter.GetScores();
        }
    }3、显示层(Presentation Layer) <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="UID"
                    DataSourceID="ObjectDataSource1" OnRowDataBound="GridView1_RowDataBound">
                    <Columns>
                        <asp:BoundField DataField="UID" HeaderText="UID" InsertVisible="False" ReadOnly="True"
                            SortExpression="UID" />
                        <asp:BoundField DataField="姓名" HeaderText="姓名" SortExpression="姓名" />
                        <asp:BoundField DataField="科目" HeaderText="科目" SortExpression="科目" />
                        <asp:BoundField DataField="积分" HeaderText="积分" SortExpression="积分" />
                    </Columns>
                </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}"
                    SelectMethod="GetScores" TypeName="Class1"></asp:ObjectDataSource>
      

  4.   

    涉及到的内容希望你细看
    http://www.asp.net/learn/data-access/
    会有帮助的。