GridView值的变化而改变行列样式.docx
《GridView值的变化而改变行列样式.docx》由会员分享,可在线阅读,更多相关《GridView值的变化而改变行列样式.docx(3页珍藏版)》请在冰点文库上搜索。
GridView值的变化而改变行列样式
GridView值的变化而改变行列样式
看到论坛中有询问关于如何在GridView随某行某列值的改变时(这些值是空的或不是空的或是其它某些值等),其背景色及文本颜色也随之改变。
这篇文章便论述这个问题。
根据某列的值改变其样式最好的方法是在GridView的DataRowBound事件中想办法。
在GridView中的行绑定数据后将立即执行DataRowBound事件。
DataRowBound事件使用GridViewRowEventargs类作为事件变量。
通过事件变量你能够利用GridViewRowEventArgs属性操作已经绑定数据的行。
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
GridViewRowrow=e.Row;
}
Row将返回TableRow类中的一个GridViewRow对象。
绑定的Row有几种不同的类型。
例如:
DataRow,EmptyDataRow,Footer,Header,Pager和Separator。
通过GridView的RowType属性可以得到当前行的行类型。
RowType是一组DataControlRow枚举。
看下面的代码示例,检测GridView列出的行是否为一个标准类型的行。
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
//Dosomething!
}
}
可以使用Row的Cells属性得到其Cells,它将返回一个TableCellCollection对象。
然后通过TableCellCollection索引得到特定的Cells。
TableCellcollection索引将返回一个TabelCell对象,对应于Row中的一个Cell:
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
stringvalue=e.Row.Cells[0].Text;
}
}
现在你已经明白了如何得到GridView中某行某列的值,那么根据值的变化改变其样式就比较容易了。
以下示例使用Northwind数据库,通过检测第四列(UnitPrice)的值是否大于10将其颜色改变为红色。
<%@PageLanguage="C#"%>
<%@ImportNamespace="System.Drawing"%>
<!
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN""http:
//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<scriptrunat="server">
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
if(Decimal.Parse(e.Row.Cells[3].Text)>10)
e.Row.Cells[3].BackColor=Color.Red;
}
}
</script>
<htmlxmlns="http:
//www.w3.org/1999/xhtml">
<headrunat="server">
<title>UntitledPage</title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:
GridViewID="GridView1"runat="server"DataSourceID="SqlDataSource1"AutoGenerateColumns="False"
DataKeyNames="ProductID"OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:
BoundFieldReadOnly="True"HeaderText="ProductID"InsertVisible="False"DataField="ProductID"
SortExpression="ProductID"/>
<asp:
BoundFieldHeaderText="ProductName"DataField="ProductName"SortExpression="ProductName"/>
<asp:
BoundFieldHeaderText="QuantityPerUnit"DataField="QuantityPerUnit"SortExpression="QuantityPerUnit"/>
<asp:
BoundFieldHeaderText="UnitPrice"DataField="UnitPrice"SortExpression="UnitPrice"/>
</Columns>
</asp:
GridView>
<asp:
SqlDataSourceID="SqlDataSource1"runat="server"SelectCommand="SELECT[ProductID],[ProductName],[QuantityPerUnit],[UnitPrice]FROM[Alphabeticallistofproducts]"
ConnectionString="<%$ConnectionStrings:
AppConnectionString1%>"/>
</div>
</form>
</body>
</html>
大丰娱乐,大丰平台,大丰注册kv3Ct1ZY9324