gpt4 book ai didi

c# - ASP.NET 更改模板字段中 Gridview 单元格中的文本和颜色

转载 作者:太空狗 更新时间:2023-10-30 00:19:54 25 4
gpt4 key购买 nike

我在 ASP.net 中有显示数据的 Gridview。根据数据,它会根据单元格的值更改颜色和文本。当列不是模板字段时,这很好用。

 //WORKS WHEN IS NOT A TEMPLATE FIELD
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[2].Text == "1")
{

e.Row.Cells[2].Text = "IN";
e.Row.Cells[2].BackColor = Color.Blue;
e.Row.Cells[2].ForeColor = Color.White;
}

}

现在我将列转换为模板字段,但没有任何效果。

     //DOEST NOT WORK WHEN IS a TEMPLATE FIELD
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[2].Text == "1")
{

e.Row.Cells[2].Text = "IN";
e.Row.Cells[2].BackColor = Color.Blue;
e.Row.Cells[2].ForeColor = Color.White;
}

}

我得到了颜色工作,但现在我需要将文本更改为以下内容。如果 statusID == 1 则显示 IN,否则如果 statusID == 2 则显示 OUT

<asp:TemplateField HeaderText="StatusID" SortExpression="StatusID">
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue = '<%# Bind("StatusID") %>'>
<asp:ListItem Value="1">IN</asp:ListItem>
<asp:ListItem Value="2">OUT</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server" Text='<%# Bind("StatusID") %>' ForeColor='<%# Convert.ToString(Eval("StatusID")) == "1" ? System.Drawing.Color.Green: Convert.ToString(Eval("StatusID")) == "2" ? System.Drawing.Color.Red: System.Drawing.Color.Purple%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>

你们中的任何人都知道如何解决这个问题。提前致谢。

最佳答案

在模板列中不起作用的原因是状态值为空。请尝试以下操作。

// In template column,
if (e.Row.RowType == DataControlRowType.DataRow)
{
var status = (Label)e.Row.FindControl("lblStatus");
if (status.Text == "1")
{
e.Row.Cells[2].Text = "IN";
e.Row.Cells[2].BackColor = Color.Blue;
e.Row.Cells[2].ForeColor = Color.White;
}
}

或者将 DataItem 转换为适当的对象并获取状态值。

GridViewRow.DataItem Property

// In template column,
if (e.Row.RowType == DataControlRowType.DataRow)
{
var obj = (MyObject)e.Row.DataItem;
if (obj.Status == 1)
{
e.Row.Cells[2].Text = "IN";
e.Row.Cells[2].BackColor = Color.Blue;
e.Row.Cells[2].ForeColor = Color.White;
}
}

关于c# - ASP.NET 更改模板字段中 Gridview 单元格中的文本和颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com