。net (VB),在vs2008中开发的
例如:数据字段: 项目申请名称1 申请人2 申请日期3 是否已批复4
a a a 是
b b b 否
c c c 否
datagrid绑定前三个字段,而根据是否批复来判断,如果已经批复则在该记录前显示绿色的灯,如果未批复,则该记录前显示红色灯。或者说如果批复了,本记录项目名称颜色为红色,未批复的项目名称颜色为绿色。
请问各位大侠如何实现?牛人可以把两种法案都说下!在线等待!!
例如:数据字段: 项目申请名称1 申请人2 申请日期3 是否已批复4
a a a 是
b b b 否
c c c 否
datagrid绑定前三个字段,而根据是否批复来判断,如果已经批复则在该记录前显示绿色的灯,如果未批复,则该记录前显示红色灯。或者说如果批复了,本记录项目名称颜色为红色,未批复的项目名称颜色为绿色。
请问各位大侠如何实现?牛人可以把两种法案都说下!在线等待!!
我的代码如下:
在page_load中:Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("../app_data/mydb.mdb"))
Dim strsql As String
Dim stryhm_dw, stryhm As String
'登陆用户名
stryhm = Session("yhm")
'登陆用户所属单位
stryhm_dw = Session("yhdw")
'取得登陆用户的级别
Dim stryhjb As String
stryhjb = Session("yhjb")
If stryhjb = "cjgly" Then
strsql = "select * from tab_htqp where lclx='合同签批'"
Else
strsql = "select * from tab_htqp where lclx='合同签批' and lxsqs_dw_yhm= '" & stryhm & "'"
End If
Dim cmd As New OleDbCommand(strsql, conn)
conn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader()
Do While dr.Read()
If dr.Item("hthqb_kz_sfpf") = "否" Then Else End If Loop
我在重申下我的问题:
在datagrid控件中,判断数据库中某个字段,当该字段值符合一定条件是,让该记录的值为红色并在datagrid绑定中显示。
我存在的困难:不知道如何获取符合条件的记录行号?不知道如何把写该记录的字为红色的语句。
<%#((Eval("xxx").ToString()=="1")?"red":"green")%>
大概就这个意思。
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<img alt="绿灯" runat="server" visible=' <%#IIf(Container.ItemIndex >= 1, True, False)%>' /><img alt="红灯" runat="server" visible=' <%#IIf(Container.ItemIndex < 1, True, False)%>'/> </ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
这样的可以不楼主,放两个img在要显示的地方,加ruant属性,改变visible的值显示哪个,visible那个属性哪里绑定值三元运算返回TRUE或者false给他就行啦。
{
if (e.Row.Cells[3].Text == "已审核")
{
e.Row.BackColor = System.Drawing.Color.Red;
}
else
{
e.Row.BackColor = System.Drawing.Color.White;
}
}
不过更推荐你用Repeater啊,可控性更好,性能也强一些。另外,楼主也可以试试这个我和朋友历时一年开发出的代码生成器,名字叫EasyCode功能绝对强大,支持界面生成、多表关联,生成的源码也可以进行参照:
http://blog.csdn.net/cwbugs/article/details/7268267
<ItemTemplate>
<img alt="~/img/green.jpg" runat="server" visible='<%#if(container.dataitem("hthqb_kz_sfpf")="否", True, False) %>'<img alt="~/img/red.jpg" runat="server" visible='<%#if(container.dataitem("hthqb_kz_sfpf")="是", True, False) %>' />
</ItemTemplate>
</asp:TemplateColumn>但是报错:
分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误消息: 服务器标记的格式不正确。源错误:
行 229: <asp:TemplateColumn>
行 230: <ItemTemplate>
行 231: <img alt="~/img/green.jpg" runat="server" visible='<%#if(container.dataitem("hthqb_kz_sfpf")='否', True, False) %>'<img alt="~/img/red.jpg" runat="server" visible='<%#if(container.dataitem("hthqb_kz_sfpf")='是', True, False) %>' />
行 232: </ItemTemplate>
行 233: </asp:TemplateColumn>
源文件: /qlyx/htqp/htqp1.aspx 行: 231
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<img alt="~/img/green.jpg" src="~/img/green.jpg" runat="server" visible='<%# IIF(container.dataitem("hthqb_kz_sfpf")='否', True, False) %>' /><img src="~/img/green.jpg" alt="~/img/red.jpg" runat="server" visible='<%# IIF(container.dataitem("hthqb_kz_sfpf")='是', True, False) %>' />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="项目名称">
<HeaderStyle Width="400px" />
<ItemTemplate>
<asp:HyperLink Text='<%# container.dataitem("lxsqs_sqsbt") %>' NavigateUrl='<%# "htqp_lxxst.aspx?htqp_name=" & container.dataitem("htqp_name") %>' ForeColor='<%# IIF(container.dataitem('hthqb_kz_sfpf')='否', green, red) %>' Target="_blank" runat="server" >
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="立项时间" DataField="lxsqs_date" DataFormatString="{0:d}">
<HeaderStyle Width="120px" />
</asp:BoundColumn>
<asp:BoundColumn HeaderText="立项单位" DataField="lxsqs_tbdw">
<HeaderStyle Width="120px" />
</asp:BoundColumn>
</Columns>
</asp:DataGrid>
报错是:<img alt="~/img/green.jpg" src="~/img/green.jpg" runat="server" visible='<%# IIF(container.dataitem("hthqb_kz_sfpf")='否', True, False) %>' /><img src="~/img/green.jpg" alt="~/img/red.jpg" runat="server" visible='<%# IIF(container.dataitem("hthqb_kz_sfpf")='是', True, False) %>' />中服务器标记的格式不正确。到底怎么写啊?
你的方法经改进可行。
现在放分