急,如何绑定数据后过滤? 我从数据库里面提取出这样的一组数据:姓名 科目 积分,如果积分低于60分的让它显示红色! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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> 我的博客:http://blog.csdn.net/WanTianwen,里面的基础知识比较多! 最最关键的也就一个: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 Layerusing 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> 涉及到的内容希望你细看http://www.asp.net/learn/data-access/会有帮助的。 麻烦解释下这个正则表达式的意思 新手写了个dll,不知道如何给别的程序调用,望指教 数组超出范围 c# input#text控件能否通过代码控制内容? 大家都用什麼做報表 VS2005 C# Pdf文件操作 哪有漂亮一点的.NET版本下的TAB页控件? 请求帮助 请教各位如下调试出现的问题该如何解决哦? 关于水晶报表的一个问题, Hashtable有多个线程写是不是线程安全的? 如何动态调用一个类,并对返回结果进行处理。
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>
{
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>
http://www.asp.net/learn/data-access/
会有帮助的。