C#代码隐藏与CSS冲突

C#代码隐藏与CSS冲突,c#,html,css,asp.net,webforms,C#,Html,Css,Asp.net,Webforms,我有一个asp:gridview,它有CSS和OnRowDataBound事件。如果我删除OnRowDataBound事件,CSS将按我所希望的那样工作,但是如果我离开CSS和OnRowDataBound事件,那么CSS将永远不会触发 有人能帮我做些什么让这两种方法同时起作用吗 ASP/HTML <asp:GridView ID="gvEmps" runat="server" CssClass="Grid" OnRowDataBound="gvEmps_OnRowDataBound

我有一个asp:gridview,它有CSS和OnRowDataBound事件。如果我删除OnRowDataBound事件,CSS将按我所希望的那样工作,但是如果我离开CSS和OnRowDataBound事件,那么CSS将永远不会触发

有人能帮我做些什么让这两种方法同时起作用吗

    ASP/HTML
<asp:GridView ID="gvEmps" runat="server" CssClass="Grid" OnRowDataBound="gvEmps_OnRowDataBound" >
    <Columns>
        <asp:BoundField DataField="EmpName" HeaderText="Name"> <ItemStyle CssClass="cellOneCellPadding" Width="50%" /></asp:BoundField>
        <asp:BoundField DataField="EmpAddress" HeaderText="Address"> <ItemStyle HorizontalAlign="Center"/></asp:BoundField>
        <asp:BoundField DataField="EmpCity" HeaderText="City"> <ItemStyle HorizontalAlign="Center"/></asp:BoundField>
        <asp:BoundField DataField="EmpState" HeaderText="State"> <ItemStyle HorizontalAlign="Center"/></asp:BoundField>
        <asp:BoundField DataField="EmpZip" HeaderText="Zip"> <ItemStyle HorizontalAlign="Center"/></asp:BoundField>
        <asp:BoundField DataField="EmpPhone" HeaderText="Phone"> <ItemStyle HorizontalAlign="Center"/></asp:BoundField>
    </Columns>
</asp:GridView>


C# Method gvEmps_OnRowDataBound....
if (e.Row.RowType == DataControlRowType.DataRow)
{
    foreach (TableCell row in e.Row.Cells)
    {
        if (design1.Any(x => x == e.Row.Cells[0].Text.ToUpper())) { row.CssClass = "des1"; }
        else if (design2.Any(x => x == e.Row.Cells[0].Text)) { row.CssClass = "des2"; }
        else if (design3.Any(x => x == e.Row.Cells[0].Text)) { row.CssClass = "des3"; }
        else { row.CssClass = "defaultview"; };
    }
} 

CSS
.cellOneCellPadding {
    padding-left: 9pt !important;
}
ASP/HTML
C#方法gvEmps_OnRowDataBound。。。。
如果(e.Row.RowType==DataControlRowType.DataRow)
{
foreach(e.row.Cells中的TableCell行)
{
if(design1.Any(x=>x==e.Row.Cells[0].Text.ToUpper()){Row.CssClass=“des1”}
else if(design2.Any(x=>x==e.Row.Cells[0].Text)){Row.CssClass=“des2”}
else if(design3.Any(x=>x==e.Row.Cells[0].Text)){Row.CssClass=“des3”}
else{row.CssClass=“defaultview”;};
}
} 
CSS
.cellOneCellPadding{
左侧填充:9磅!重要;
}

您正在OnRowDataBound函数中重新分配CssClass属性,并覆盖模板中最初提供的CssClass。将foreach更改为如下所示:

foreach (TableCell row in e.Row.Cells)
{
    if (design1.Any(x => x == e.Row.Cells[0].Text.ToUpper())) { row.CssClass += " des1"; }
    else if (design2.Any(x => x == e.Row.Cells[0].Text)) { row.CssClass += " des2"; }
    else if (design3.Any(x => x == e.Row.Cells[0].Text)) { row.CssClass += " des3"; }
    else { row.CssClass += " defaultview"; };
}

您正在OnRowDataBound函数中重新分配CssClass属性,并覆盖模板中最初提供的CssClass。将foreach更改为如下所示:

foreach (TableCell row in e.Row.Cells)
{
    if (design1.Any(x => x == e.Row.Cells[0].Text.ToUpper())) { row.CssClass += " des1"; }
    else if (design2.Any(x => x == e.Row.Cells[0].Text)) { row.CssClass += " des2"; }
    else if (design3.Any(x => x == e.Row.Cells[0].Text)) { row.CssClass += " des3"; }
    else { row.CssClass += " defaultview"; };
}

请添加标签以帮助人们识别您的问题。使用该选项并创建一个演示如果您检查字段,希望其填充剩余9px,您是否看到类
cellOneCellPadding
?我的猜测是,part
row.CssClass=“des1”
etc实际上覆盖了类参数,并且您不再拥有您在css中定义的
cellnecllpadding
,请添加一个标记以帮助人们识别您的问题。使用该选项并创建一个演示如果您检查字段,希望其填充剩余9px,您是否看到类
cellOneCellPadding
?我的猜测是,部分
row.CssClass=“des1”
etc实际上覆盖了类参数,并且您不再拥有您在CSW中定义的
cellnecllpadding
,在+=do中添加什么?@BoJackHorseman
+=
row.CssClass=row.CssClass+“des1”相同
这里@BoJackHorseman看一看@BoJackHorseman确保在开始引用后留下空格,否则您将直接将新类附加到旧类上,并且会遇到与以前相同的问题。在+=中添加做什么?@BoJackHorseman
+=
row.CssClass=row.CssClass+“des1”相同
here@BoJackHorseman看一看@BoJackHorseman确保在开始引用后留下空格,否则您将直接将新类附加到旧类上,并遇到与以前相同的问题。