Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 根据行中某列的值更改行的颜色_Asp.net_Jquery_Vb.net_Gridview - Fatal编程技术网

Asp.net 根据行中某列的值更改行的颜色

Asp.net 根据行中某列的值更改行的颜色,asp.net,jquery,vb.net,gridview,Asp.net,Jquery,Vb.net,Gridview,我有一个sqldatasource,它从我的服务器加载数据并将其放入数据网格 我有一个名为clnumber的列,它有数字1,2,3 我想要的是,根据datarow列中的数字,每一行都有不同的颜色 这是我使用的代码 根据数字如何计算? 第一排白色,第二排灰色 if(rownumber%2 == 0) //white else //grey 或者反过来说。基于数字如何? 第一排白色,第二排灰色 if(rownumber%2 == 0) //white else //grey 或者反过来说。如果

我有一个sqldatasource,它从我的服务器加载数据并将其放入数据网格

我有一个名为clnumber的列,它有数字1,2,3

我想要的是,根据datarow列中的数字,每一行都有不同的颜色

这是我使用的代码

根据数字如何计算? 第一排白色,第二排灰色

if(rownumber%2 == 0) //white
else //grey
或者反过来说。

基于数字如何? 第一排白色,第二排灰色

if(rownumber%2 == 0) //white
else //grey

或者反过来说。

如果指示应该使用哪种颜色的数字实际上是在HTML输出中生成的,为什么不使用javascript?

如果指示应该使用哪种颜色的数字实际上是在HTML输出中生成的,为什么不使用javascript?

您可以使用类似的方法:

    /// <summary>
    /// Updates the row fore colour to show the line type
    /// </summary>
    /// <param name="sender">object</param>
    /// <param name="e">args</param>
    protected void gvLineValues_RowDataBound( object sender, GridViewRowEventArgs e )
    {
        try
        {
            //Format the row
            this.FormatRow( e );
        }
        catch ( Exception ex )
        {
            ErrorLogging.LogError( ex );
        }
    }

  /// <summary>
        /// Formats a gridview row
        /// </summary>
        /// <param name="e">Gridview event args</param>
        private void FormatRow( GridViewRowEventArgs e )
        {
            try
            {
                //Change the forecolor of the row
                if ( e.Row.RowType == DataControlRowType.DataRow )
                {
                    OrderLine oOrderLine = e.Row.DataItem as OrderLine;

                    if ( oOrderLine != null )
                    {
                        e.Row.ForeColor = oOrderLine.ForeColour;


                                //Check the line is over budget
                                if ( oOrderLine.OverBudget )
                                {
                                    e.Row.BackColor = ColourManager.OverBudgetItemBackColour;
                                    e.Row.ToolTip = String.Format( "Item over {0} and awaiting your approval", GlobalizationManager.Budget );
                                }
                                else
                                {
                                    e.Row.BackColor = ColourManager.WithinBudgetItemBackColour;
                                    e.Row.ToolTip = "Item awaiting your approval";
                                }
                            }
                        }

                        //Change the back colour of the row if its a deleted row
                        if ( oOrderLine.Deleted )
                        {
                            e.Row.Font.Strikeout = true;
                            e.Row.ToolTip = "This line has been deleted";
                        }
                    }
                }
            }
            catch ( Exception )
            {
                throw;
            }
        }

您可以使用类似的方法:

    /// <summary>
    /// Updates the row fore colour to show the line type
    /// </summary>
    /// <param name="sender">object</param>
    /// <param name="e">args</param>
    protected void gvLineValues_RowDataBound( object sender, GridViewRowEventArgs e )
    {
        try
        {
            //Format the row
            this.FormatRow( e );
        }
        catch ( Exception ex )
        {
            ErrorLogging.LogError( ex );
        }
    }

  /// <summary>
        /// Formats a gridview row
        /// </summary>
        /// <param name="e">Gridview event args</param>
        private void FormatRow( GridViewRowEventArgs e )
        {
            try
            {
                //Change the forecolor of the row
                if ( e.Row.RowType == DataControlRowType.DataRow )
                {
                    OrderLine oOrderLine = e.Row.DataItem as OrderLine;

                    if ( oOrderLine != null )
                    {
                        e.Row.ForeColor = oOrderLine.ForeColour;


                                //Check the line is over budget
                                if ( oOrderLine.OverBudget )
                                {
                                    e.Row.BackColor = ColourManager.OverBudgetItemBackColour;
                                    e.Row.ToolTip = String.Format( "Item over {0} and awaiting your approval", GlobalizationManager.Budget );
                                }
                                else
                                {
                                    e.Row.BackColor = ColourManager.WithinBudgetItemBackColour;
                                    e.Row.ToolTip = "Item awaiting your approval";
                                }
                            }
                        }

                        //Change the back colour of the row if its a deleted row
                        if ( oOrderLine.Deleted )
                        {
                            e.Row.Font.Strikeout = true;
                            e.Row.ToolTip = "This line has been deleted";
                        }
                    }
                }
            }
            catch ( Exception )
            {
                throw;
            }
        }

假设您为gridview提供了一个名为“myGridView”的css类,您可以执行以下操作:

$(document).ready(function () {

    $('.myGridView tr').each(function () {

        var number = $(this).children('td:eq(1)').text();

        if (number == '1') {
            $(this).children('td').css('background', 'red');
        }
    })
});
其中'td:eq1'指一行中的第二个单元格。当然,这取决于行中哪个单元格包含这个幻数


我确信这不是jQuery最优雅的用法,但您可以根据自己的意愿重构它

如果您已经为gridview提供了一个名为“myGridView”的css类,您可以执行以下操作:

$(document).ready(function () {

    $('.myGridView tr').each(function () {

        var number = $(this).children('td:eq(1)').text();

        if (number == '1') {
            $(this).children('td').css('background', 'red');
        }
    })
});
其中'td:eq1'指一行中的第二个单元格。当然,这取决于行中哪个单元格包含这个幻数



我敢肯定这不是jQuery最优雅的用法,但您可以根据自己的意愿重构它

,这将自动为网格中的每一行执行此操作?将其放入GridView_RowDataBound事件中,或者如果您的GridView具有分页功能,则它将仅应用于代码运行时出现的任何行。是的。任何一个数字被2等分都是白色的,其他的都是灰色的。嗯,你能调整一下这个方法吗,例如,如果我想要字母A,B,C的任何一行。我需要这个来做很多事情。你的意思是?你打算用“A”、“B”和“C”来代替行号,并对这些行使用不同的颜色?在这种情况下,我只使用静态字典或其他东西。这将自动为网格中的每一行执行此操作?将其放入GridView_RowDataBound事件中,或者如果GridView具有分页功能,则它将仅应用于代码运行时存在的任何行。是。任何一个数字被2等分都是白色的,其他的都是灰色的。嗯,你能调整一下这个方法吗,例如,如果我想要字母A,B,C的任何一行。我需要这个来做很多事情。你的意思是?你打算用“A”、“B”和“C”来代替行号,并对这些行使用不同的颜色?在这种情况下,我只会使用静态字典或其他东西。这是很多人在网上说的,但我不熟悉javascript,有人说甚至jquery也是可能的,我会使用jquery。使用脚本标记在页面头部引用jQuery,然后简单地迭代每一行,检查每一行以及该行中包含该数字的特定单元格,并编写一个小函数,使用CSS设置行的背景颜色。我很抱歉,但这是一种比在数据网格的事件处理程序上乱搞简单得多的方法,因为这纯粹是一个布局/CSS问题。我尝试使用我将在上面发布的jquery代码,但它不起作用。这是许多人在网上说的,但我不熟悉javascript,有人说甚至jquery也是可能的,我会使用jQuery。使用脚本标记在页面头部引用jQuery,然后简单地迭代每一行,检查每一行以及该行中包含该数字的特定单元格,并编写一个小函数,使用CSS设置行的背景颜色。很抱歉,这是一种比在数据网格中处理事件处理程序简单得多的方法,可以解决一些纯粹的布局/CSS问题。我尝试过使用jquery代码,我将在上面发布,但它不起作用。感谢您的帮助,这可能就是我使用的方法,除非我能用JavaScriptThank做这件事谢谢你的帮助这可能就是我使用的方法除非我能用JavaScript做这件事jQuery片段的一个突出问题是“Gridview1”实际上没有引用任何东西。现在,“Gridview1”或“.Gridview1”可能真的可以工作了。请参阅下面我的新文章,其中介绍了解决此问题的jQuery解决方案。jQuery片段的一个突出问题是“Gridview1”实际上没有引用任何内容。现在,“Gridview1”或“.Gridview1”可能真的可以工作了。请参阅下面我的新文章,其中介绍了此问题的jQuery解决方案。出于某种原因,它不起作用。gridview1如果我的gridview名称为gridview1,并且如果我已经有了样式表,它是否会有所不同。如果您已经有了样式表,它可能会有所不同,虽然这不太可能,因为我在这里发布的内容将通过单元格标记的style属性呈现内联css,该属性应为prec
edence在您的样式表上。还要注意,我假设我的示例中的gridview有一个名为“myGridView”的css类。如果您试图使用网格视图的ID,我怀疑它不会工作,因为ASP.NET将在HTML输出中呈现不同的ID。给网格视图一个CSS类名可以克服这个问题。它工作得很好,这要感谢唯一的问题是当我回发或更新面板时,网格在其中会恢复正常:/出于某种原因,它不工作。gridview1如果我的gridview名称是gridview1,并且如果我已经有了样式表,它是否会有所不同。如果你有一个样式表已经存在,它可能会有所不同,尽管这不太可能,因为我在这里发布的内容将通过单元格标记的style属性呈现内联css,该属性应该优先于您的样式表。还要注意,我假设我的示例中的gridview有一个名为“myGridView”的css类。如果您试图使用网格视图的ID,我怀疑它不会工作,因为ASP.NET将在HTML输出中呈现不同的ID。给网格视图一个CSS类名可以解决这个问题。它工作得很好,这要感谢唯一的问题是当我回发或更新面板时,网格在其中会恢复正常:/