在数据绑定时将CssClass附加到带有外观的GridViewRow

时间:2013-01-03 07:15:12

标签: asp.net gridview

我刚刚创建了此扩展程序:

public static class GridViewRowExtension
{
    public static void AppendCssClass(this GridViewRow row, string cssClass)
    {
        row.CssClass = string.Format("{0} {1}", row.CssClass, cssClass).Trim();
    }
}

并在 OnRowDataBound 事件中使用它:

    protected void OnInstrumentsRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            AdjustRow(e.Row);
            ToggleCloseButton(e.Row);
            DisplayPerformance(e.Row);
        }
        else
        {
            e.Row.AppendCssClass("nodrag nodrop grt_gridview_default_header");
        }
    }

然而,追加不起作用,因为row.CssClass在此行中用作{0}:

row.CssClass = string.Format("{0} {1}", row.CssClass, cssClass).Trim();

是空的。我原以为它会在GridView默认皮肤中定义一个CssClass。

我确定我的皮肤有效,因为当我删除AppendCssClass调用时,我看到皮肤中定义了CssClass。

为什么我没有实现我想要的任何想法?

1 个答案:

答案 0 :(得分:0)

为什么不为此尝试jQuery,它可能随你所能

$(document).ready(function ()
 {$("#divGridView table tbody tr").each(function () 
     {
    var myClass = $(this).attr("class");
    $(this).removeClass(myClass);
    $(this).addClass(myClass + " nodrag nodrop grt_gridview_default_header");

})});