如何在网格视图中绑定项目

时间:2011-06-16 14:52:30

标签: c# asp.net gridview

这是一个两部分问题,即使用数据集和网格视图。在完成一些计算并将其添加到数据集之后,通过查询数据库来填充数据集。完成所有计算后,数据集将绑定到网格视图。看起来像这样。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%"  CssClass="tableText" >
        <AlternatingRowStyle BackColor="White" />
        <EditRowStyle BackColor="#2461BF" />
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="#EFF3FB" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <SortedAscendingCellStyle BackColor="#F5F7FB" />
        <SortedAscendingHeaderStyle BackColor="#6D95E1" />
        <SortedDescendingCellStyle BackColor="#E9EBEF" />
        <SortedDescendingHeaderStyle BackColor="#4870BE" />
        <Columns>
        <asp:BoundField DataField="INV_GP" HeaderText="INV GP" />
        <asp:BoundField DataField="SORG_GP" HeaderText="SORD GP" />
        <asp:BoundField DataField="SRTN_GP" HeaderText="SRTN GP" />
        <asp:BoundField DataField="EXPEND" HeaderText="EXPEND" />
        <asp:BoundField DataField="TARGET" HeaderText="TARGET" />
        <asp:BoundField DataField="PERC_OF_TARGET" HeaderText="%" />
        <asp:BoundField DataField="M_PERC" HeaderText="M%" />
        <asp:BoundField DataField="100NEED" HeaderText="NEED FOR 100%" />
        </Columns>
    </asp:GridView>

以下是我希望能够做到的事情:

  1. 正如您所看到的,列具有%值,但数据集只有数字。如何在gridview中的数字旁边显示%?

  2. 我希望能够添加某种条件语句,以便能够以不同的颜色显示文本。例如,在m%中,如果任何值小于50%,我希望文本显示为红色。

3 个答案:

答案 0 :(得分:3)

使用TemplateField代替BoundField,并为内容指定一个类来定义颜色。

<强> CSS

<style type="text/css">
.MoreThanFifty { color: green; }
.FiftyOrLess { color: red; }
</style>

<强> ASP.NET

<asp:TemplateField HeaderText="M%">
  <ItemTemplate>
    <span class='<%# int.Parse(Eval("M_PERC").ToString()) > 50 ? "MoreThanFifty" : "FiftyOrLess"  %>'>
      <%# Eval("M_PERC") %> %
    </span>
  </ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:1)

要将数字格式设置为百分比,请查看BoundField.DataFormatString。例如:

<asp:BoundField DataField="PERC_OF_TARGET" 
                HeaderText="%" 
                DataFormatString="{0:F0}%" />

上面的格式字符串将格式化带小数位零的数字,如果需要小数位,则使用{0:F2}%,这将添加两位小数。

答案 2 :(得分:0)

1)查看“templatefield”http://www.asp.net/data-access/tutorials/using-templatefields-in-the-gridview-control-cs

2)见上文!编辑:以下是如何使用templatefield实现此目的的详细示例:How to implement conditional formatting in a GridView

享受。