Как изменить цвет текста Gridview в соответствии с методом ErrorMessage ()? - PullRequest
0 голосов
/ 08 сентября 2011

У меня есть эти коды в моем файле cs:

   //A method to display errors in the gridview
    private string ErrorMessage(string input)

        {
            {
                //if there are null values, error message will be displayed.
                if (!string.IsNullOrEmpty(input))
                    return input;

            }
            return  "No value entered";// I am supposed to change this to red colour


        }

    public System.Drawing.Color InStockColor(string inStock)
    {
        return System.Drawing.Color.Red;
    } 




 // to read all lines of the posted csv file and put the lines in the grid view
        var data = File.ReadAllLines(Server.MapPath(FilePath))
            // to split the lines according to commas
          .Select(line => line.Split(','))

          .Select(columns => new { A = ErrorMessage(columns[0]), B = ErrorMessage(columns[1]), C = ErrorMessage(columns[2]), D = ErrorMessage(columns[3]), E = ErrorMessage(columns[4]), F = ErrorMessage(columns[5]), G = ErrorMessage(columns[6]), H = ErrorMessage(columns[7]), I = ErrorMessage(columns[8]) });


        myGridView.DataSource = data; 
        myGridView.DataBind();



<asp:GridView ID="myGridView" runat="server" CellPadding="4" 
    EnableModelValidation="True" ForeColor="#333333" GridLines="None" 
    Width="414px" align="center">
    <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" />
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />

</asp:GridView>

До сих пор я создал метод, который будет изменять цвет текста.Теперь, как я могу реализовать этот метод?Текст, который должен быть изменен на красный - «Нет введенного значения!»

1 Ответ

0 голосов
/ 08 сентября 2011

Вот как я бы решил эту проблему!

using System.Drawing;

private string ErrorMessage(string input, int rowNr, int colNr)          
{             
    if (!string.IsNullOrEmpty(input))
        return input;

    myGridView.Rows[rowNr].Cells[colNr].ForeColor = Color.Red;
    return  "No value entered";
}  

Другой способ - добавить теги html, подобные этому ...

using System.Drawing;

private string ErrorMessage(string input, int rowNr, int colNr)          
{             
    if (!string.IsNullOrEmpty(input))
        return input;
    return  "<font color='Red'>" + "No value entered" + "</font>";
} 

, но я не рекомендую тегипотому что <font> устарела, и вы фактически установили текстовое значение ячейки в HTML-код.

Надеюсь, это поможет!

РЕДАКТИРОВАТЬ:

Не могли бы вы объяснить этот кусок кода ... mabe предоставить некоторый контекст, какой это синтаксис?

Можете ли вы объяснить .Select (...) команды, как они работают?что они делают?

 // to read all lines of the posted csv file and put the lines in the grid view
        var data = File.ReadAllLines(Server.MapPath(FilePath))
            // to split the lines according to commas
          .Select(line => line.Split(','))

          .Select(columns => new { A = ErrorMessage(columns[0]), B = ErrorMessage(columns[1]), C = ErrorMessage(columns[2]), D = ErrorMessage(columns[3]), E = ErrorMessage(columns[4]), F = ErrorMessage(columns[5]), G = ErrorMessage(columns[6]), H = ErrorMessage(columns[7]), I = ErrorMessage(columns[8]) });


        myGridView.DataSource = data; 
        myGridView.DataBind();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...