。net (VB),在vs2008中开发的
例如:数据字段:     项目申请名称1    申请人2    申请日期3    是否已批复4
                         a             a          a             是
                         b             b          b             否
                         c             c          c             否
datagrid绑定前三个字段,而根据是否批复来判断,如果已经批复则在该记录前显示绿色的灯,如果未批复,则该记录前显示红色灯。或者说如果批复了,本记录项目名称颜色为红色,未批复的项目名称颜色为绿色。
请问各位大侠如何实现?牛人可以把两种法案都说下!在线等待!!                   

解决方案 »

  1.   

    请问:我获取批复字段的值后,如何把该记录的项目名字变绿色,这个关键语句我不知道怎么写,所以就问大家有什么好的方法。
    我的代码如下:
    在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
      

  2.   

    也就是说如何读取datagrid绑定的某条记录的项目名称的forecolor的属性?
      

  3.   

    难道是我问题没有描述清楚,怎么baidu下,有的说datagrid不能实现这种功能。
    我在重申下我的问题:
    在datagrid控件中,判断数据库中某个字段,当该字段值符合一定条件是,让该记录的值为红色并在datagrid绑定中显示。
    我存在的困难:不知道如何获取符合条件的记录行号?不知道如何把写该记录的字为红色的语句。
      

  4.   

    绑定的时候三元
    <%#((Eval("xxx").ToString()=="1")?"red":"green")%>
    大概就这个意思。
     
      

  5.   

            <asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False">
            <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给他就行啦。
      

  6.   

    DataGrid还有这么多人在用啊,在DataGrid的行绑定事件里加代码吧。        protected void DataGrid01_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                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
      

  7.   

    <asp:TemplateColumn>
                                                            <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 
      

  8.   

    <asp:DataGrid ID="dg_htqp" Font-Size="14px" Width="100%" AutoGenerateColumns="false" AllowPaging="true" AllowCustomPaging="true" DataKeyField="htqp_name" PageSize="50" OnPageIndexChanged="dg_htqp_page" PagerStyle-HorizontalAlign="Right" PagerStyle-Mode="NumericPages" runat="server">
                                                    <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) %>' />中服务器标记的格式不正确。到底怎么写啊?
      

  9.   

    谢谢muhengji
    你的方法经改进可行。
    现在放分