发布应用程序时,代码后面的 C# Asp.net Css 类不起作用
Posted
技术标签:
【中文标题】发布应用程序时,代码后面的 C# Asp.net Css 类不起作用【英文标题】:C# Asp.net Css class in code behind does not work when app is published 【发布时间】:2021-05-06 17:06:03 【问题描述】:我对 ASP.net Framework Webapps 环境还很陌生,遇到了一个问题。
如果我根据 C# 代码中的条件设置一个 Css 类,它就可以正常工作。我将应用程序发布到 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 上的同一浏览器。
【问题讨论】:
这似乎是一个区域问题。在您的生产服务器上,日期格式使用“-”而不是“/”。 【参考方案1】:在此示例中,您不清楚实际数据(类型)是什么。但理想情况下,您不想与日期的文本表示进行比较。最好与实际的日期时间进行比较。因此,假设您要绑定的数据是 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
【讨论】:
谢谢,将值转换为 someObject 似乎可以解决问题 很高兴能提供帮助 :) 介意将问题标记为已回答吗?以上是关于发布应用程序时,代码后面的 C# Asp.net Css 类不起作用的主要内容,如果未能解决你的问题,请参考以下文章