【问题标题】:change gridview colour when checkbox selected选中复选框时更改gridview颜色
【发布时间】:2012-01-30 19:06:43
【问题描述】:

我有一个绑定了一些数据的gridview。我对交替行也有不同的背景,因此表格更具可读性...如何在选中第一列中的复选框时更改行背景的颜色,并在未选中时将其更改回原始颜色。我遇到的问题是,如何知道原始背景(取消选中复选框后)是用于普通行还是用于交替行?

我知道如何像这样更改行属性:

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;");
    }
}

但是,如果有更多的复选框被选中,我怎么知道哪个是原始背景?

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    我会给出一个 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 
    

    为了回答这个问题,我所做的是在更改之前将旧颜色放在标签上的属性中,类似于内存管理员:)

    【讨论】:

      【解决方案2】:
      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;
                    }
      
              }
         }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-05
        • 2013-04-21
        • 2014-06-26
        • 1970-01-01
        相关资源
        最近更新 更多