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
我是 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