изменить цвет сетки при установленном флажке - PullRequest
0 голосов
/ 30 января 2012

У меня есть сетка с некоторыми данными, привязанными к нему. У меня также есть другой фон для чередующихся строк, поэтому таблица более удобочитаема ... Как изменить цвет фона строки, когда установлен флажок в первом столбце, и изменить его на исходный, если он не отмечен. У меня проблема, как узнать, если исходный фон (после снятия флажка) для нормальной строки или для чередующейся строки?

Я знаю, как изменить атрибуты строки следующим образом:

protected void gvUser_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == System.Web.UI.WebControls.DataControlRowType.DataRow)
    {
        e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#D9ECFB'");
        e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
    }
}

Но что, если установлены дополнительные флажки, как узнать, какой фон является исходным?

Ответы [ 2 ]

1 голос
/ 30 января 2012

Я дам решение jQuery, и я надеюсь, что оно вам понравится.Здесь я нахожу все флажки, которые находятся внутри элемента управления GridView, а затем, когда вы нажимаете на один из них, я получаю полную строку и меняю цвет, но сохраняю старый, чтобы вернуть его обратно.Только одна заметка, вы должны поместить в строки стиль .row

function InitTheChecks()
{
    var updateButtons = jQuery('#<%=GridView.ClientID%> input[type=checkbox]');

    updateButtons.each(function (){
        jQuery(this).attr('onclick', null).click(function () 
        {
            var ThisCheckBox = jQuery(this);

            if(ThisCheckBox.is(':checked'))
            {
                ThisCheckBox.attr('oldBackColor', ThisCheckBox.parents(".row").css("background-color"));
                ThisCheckBox.parents(".row").css("background-color", "#FFD8CE");
            }
            else
            {
                ThisCheckBox.parents(".row").css("background-color", ThisCheckBox.attr('oldBackColor'));
            }
        });
    });    
}    

и запустить загрузку InitTheChecks () OnPage.

how to know if original background 

Чтобы ответить на этот вопрос, что ясделать это, чтобы я поместил старый цвет в атрибут на теге, прежде чем я его изменить, что-то вроде хранителя памяти:)

0 голосов
/ 07 июня 2017
This worked for me.

private void setrowcolor()
   {
       bool checkSelected = false;
       foreach (DataGridViewRow row in gridgencsv.Rows)
       {
          checkSelected =Convert.ToBoolean(row.Cells["select_check"].Value);
            if (checkSelected == true)
              {
                    row.DefaultCellStyle.BackColor = System.Drawing.Color.CadetBlue;
              }
            else
              {
                    row.DefaultCellStyle.BackColor = System.Drawing.Color.White;
              }

        }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...