C# Acumatica在PXGrid中设置特定列的样式?

C# Acumatica在PXGrid中设置特定列的样式?,c#,asp.net,acumatica,C#,Asp.net,Acumatica,我正在尝试为PXGrid中的列定义Css样式 <px:PXGrid ID="grid" runat="server" DataSourceID="ds" Width="100%" TabIndex="100" SkinID="DetailsInTab" StatusField="Availability" SyncPosition="True" Height="473px" OnColumnDataBound="grid_rowBound">

我正在尝试为PXGrid中的列定义Css样式

 <px:PXGrid ID="grid" runat="server" DataSourceID="ds" Width="100%"
                    TabIndex="100" SkinID="DetailsInTab" StatusField="Availability" SyncPosition="True" Height="473px" OnColumnDataBound="grid_rowBound">


protected void grid_rowBound(object sender, PX.Web.UI.PXGridRowEventArgs e)
{
    Object value = e.Row.Cells["OrigQty"].Value;
    if (value != null && ((Boolean)value) == false)
        e.Row.Style.CssClass = "RedCol";
}

受保护的void grid_rowBound(对象发送方,PX.Web.UI.PXGridRowEventArgs e)
{
对象值=行单元格[“原始数量”]值;
如果(值!=null&((布尔)值)==false)
e、 Row.Style.CssClass=“RedCol”;
}

是否可以使用OnColumnDataBound设置列样式

您可以在页面代码隐藏中动态创建样式,如下所示

在下面的示例中,我修改了开箱即用的
EP503010
page

受保护的无效页面加载(对象发送方,事件参数e)
{
样式升级=新样式();
升级的.ForeColor=System.Drawing.Color.Red;
this.Page.Header.StyleSheet.CreateStyleRule(已升级,此为“.CssEscalated”);
样式行样式=新样式();
rowStyle.BackColor=System.Drawing.Color.Red;
this.Page.Header.StyleSheet.CreateStyleRule(rowStyle,this,“.CssRowStyle”);
Style cellStyle=新样式();
cellStyle.BackColor=System.Drawing.Color.Aqua;
this.Page.Header.StyleSheet.CreateStyleRule(cellStyle,this,“.CssCellStyle”);
Style highlightStyle=新样式();
highlightStyle.BackColor=System.Drawing.Color.Yellow;
this.Page.Header.StyleSheet.CreateStyleRule(highlightStyle,this,“.CssHighlightStyle”);
}
并在
PXGrid
OnRowDataBound
事件处理程序中使用它,如下所示

protectedvoid grid\u RowDataBound(对象发送方,PX.Web.UI.PXGridRowEventArgs e)
{
EPApprovalProcess.EPOwned item=e.Row.DataItem作为EPApprovalProcess.EPOwned;
如果(item==null)返回;
如果(item.Escalated==真)
{
//对于行-将字体更改为红色
e、 Row.Style.CssClass=“CssEscalated”;
}
否则如果(item.CuryTotalAmount.HasValue&&item.CuryTotalAmount.Value>10m)
{
//对于行-将背景更改为红色
e、 Row.Style.CssClass=“CssRowStyle”;
}
//对于特定列-将背景更改为Aqua-整列所有行。
e、 行单元格[“Descr”].Style.CssClass=“CssCellStyle”;
//特定列单元格的条件值
如果(item.CuryTotalAmount.HasValue&&item.CuryTotalAmount.Value>10m)
{
e、 行单元格[“CuryTotalAmount”].Style.CssClass=“CssHighlightStyle”;
}
}


您可以参考开箱即用的EP503010.aspx和EP503010.aspx.cs页面文件。

如何将CSS样式应用于整个列。@nickivey我已修改了原始答案。