【问题标题】:How to set forecolor in TemplateField?如何在 TemplateField 中设置前景色?
【发布时间】:2012-04-06 04:23:07
【问题描述】:

下面的代码在评估 Gender 后在 GridView 列中显示“M”或“F”。

        <asp:TemplateField HeaderText="Gender">
            <ItemTemplate>
                <%# Eval("Gender") %>
            </ItemTemplate>
        </asp:TemplateField>

当它是“M”时,我想使用 textcolor red 和 blue 否则。我该怎么做呢?在 aspx 文件或后面的代码中都可以。如果可能的话,我想知道这两种方法。

【问题讨论】:

    标签: c# asp.net templatefield


    【解决方案1】:

    要通过标记来做到这一点,您必须将项目模板内容包装到例如&lt;div&gt;,并像这样对其应用必要的样式:

    <asp:TemplateField HeaderText="Gender">
        <ItemTemplate>
            <div style='color: <%# Eval("Gender") == "M" ? "Red" : "Blue" %>'>
                <%# Eval("Gender") %>
            </div>
        </ItemTemplate>
    </asp:TemplateField>
    

    【讨论】:

      【解决方案2】:

      您可以使用 GridView 上的onRowDataBound 事件来检查“M”或“F”,然后根据值更改字体颜色。

      void gridview_RowDataBound(Object sender, GridViewRowEventArgs e)
      {
      
      if(e.Row.RowType == DataControlRowType.DataRow)
      {
      string theValue = e.Row.Cells[3].Text;
      
      if (theValue ="M")
      {
      e.Row.Cells[1].Forecolor= Color.Red
      }
      
      else if (theValue ="F")
      {
      e.Row.Cells[1].Forecolor= Color.Blue;
      }
      }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-06
        • 2018-04-09
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-05
        相关资源
        最近更新 更多