C# Asp.net Css class 代码隐藏在发布应用程序时不起作用

C# Asp.net Css class in code behind does not work when app is published

我是 ASP.net Framework Webapps 环境的新手,遇到了一个问题。

如果我根据 C# 代码中的条件设置 Css class,它就可以正常工作。我将应用程序发布到 IIS 的那一刻不再起作用。为了理智,我还尝试将应用程序发布为调试或发布模式,这没有任何区别。

页面的page_load事件加载数据,这里刷新updatepanel

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="upcontent">
        <ContentTemplate>
            <div class="jumbotron" style="padding: 5px; background-color: lightgrey; overflow: hidden">
                <div class="card bg-secondary mb-3" style="max-width: 35rem; min-width: 35rem; float: left; overflow: hidden;">
                    <div class="card-header">Work Order Details</div>
                    <div class="card-body">

                        <asp:GridView ID="GVMain" margin-top="10px" runat="server" EmptyDataText="Record is empty" Width="100%" AutoGenerateColumns="true" ShowHeader="false" DataKeyNames="PropertyName" class="table table-hover" OnPageIndexChanging="GVMain_PageIndexChanging" OnRowDataBound="GVMain_RowDataBound" BorderStyle="NotSet" AllowPaging="true" PageSize="10">
                            <PagerSettings Mode="NumericFirstLast" />
                        </asp:GridView>
                    </div>
                </div>
     </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

隐藏代码:

        protected void GVMain_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                // Check the XXXX column - if empty, the YYYY needs highlighting!
                if (e.Row.Cells[1].Text == "Mon, 01/01/0001")
                {
                    e.Row.Cells[1].CssClass = "text-warning"; // ...so highlight it
                }          
            }
            upcontent.Update();
        }

请协助,查看下面开发和部署环境之间的附件图片

Working from Dev Enviroment

Working from Inspect Panel

Not Working when Depoyed on IIS Server

Not Working when Depoyed on IIS Server Inspect Panel

能否提供帮助。需要注意的一件事是,这是来自同一台 PC 上的同一浏览器。

在这个例子中,你给出的实际数据(类型)是什么并不清楚。但理想情况下,您不想与日期的文本表示形式进行比较。最好与实际日期时间进行比较。因此,假设您要绑定的数据是 SomeObject 类型,它具有 属性 DateTime 'TheDate' 那么您可以在 OnRowBinding 事件中使用以下代码:

if (e.Row.RowType == DataControlRowType.DataRow)
{
    var value = e.Row.DataItem as SomeObject;
    if (value != null && value.TheDate == DateTime.MinValue)
    {
        // do whatever is appropriate