首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据数据库值asp.net更改css值

问根据数据库值asp.net更改css值
EN

Stack Overflow用户
提问于 2017-02-03 19:56:43
回答 4查看 1.4K关注 0票数 0

我正在使用sql服务器和aspx。我希望表中的值根据文件后面代码中sql中的值来更改颜色。因此,如果表==中的值“是”更改颜色#ff0000。如果表中的值为==,则"no“将其更改为#00ff00;表调用: submitTable,列为status。我在用Gridview。

代码语言:javascript
复制
<asp:GridView ID="gridlistUsers" runat="server" HorizontalAlign="left" AutoGenerateColumns="false" CssClass="table table-bordered " GridLines="None">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="TicketNumber" HeaderStyle-CssClass="Color" />
        <asp:BoundField DataField="ID" HeaderText="TicketNumber" HeaderStyle-CssClass="Color" />
        <asp:BoundField DataField="Status" HeaderText="Opened/Closed" HeaderStyle-CssClass="Color" />
    </Columns>
</asp:GridView>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-06 19:29:45

我让它开始工作了!这对我也有帮助,http://www.aspsnippets.com/Articles/Change-Background-color-of-GridView-Row-using-RowDataBound-event-in-ASPNet-using-C-and-VBNet.aspx

代码语言:javascript
复制
 <asp:GridView ID="gridlistUsers" runat="server" HorizontalAlign="left" AutoGenerateColumns="false" CssClass="table table-bordered " OnRowDataBound = "OnRowDataBound">

//代码后面

代码语言:javascript
复制
 protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TableCell cell = e.Row.Cells[0];  //the 0 changes depending on the column number in sql
                string status = (cell.Text);
                string yes = "yes";
                string no = "no";

                if (status.Equals(no))
                {
                    cell.BackColor = Color.Red;
                }
                if (status.Equals(yes))
                {
                    cell.BackColor = Color.Green;
                }


            }
        }
票数 1
EN

Stack Overflow用户

发布于 2017-02-03 20:05:45

您应该在asp中执行此工作,以便为此sql表创建REST。然后,使用Ajax & JS,您可以获得每个html表的这个值,并保存到变量。

然后简单地说:

代码语言:javascript
复制
if (your_sql_value === "yes") {
    document.querySelector('.css-class').style.backgroundColor = "#ff0000"
} else if (your_sql_value === "no") {
    document.querySelector('.css-class').style.backgroundColor = "#00ff00"
}
票数 2
EN

Stack Overflow用户

发布于 2017-02-05 17:51:47

从您的回答来看,我假设您使用的是asp:Table。

因此,基本上有两种可能的方式:

1.您的表已经填充并呈现为

如果是这样的话,请检查此表示例:

图像:

​

​

.ASPX表代码:

代码语言:javascript
复制
<asp:Table ID="submitTable" runat="server" GridLines="Both">
    <asp:TableRow runat="server" HorizontalAlign="Center" TableSection="TableHeader" VerticalAlign="Middle">
        <asp:TableCell runat="server" Width="128px">ID</asp:TableCell>
        <asp:TableCell runat="server" Width="128px">Status</asp:TableCell>
    </asp:TableRow>
</asp:Table>

它是一个包含随机值的表,随机值为“是”或“否”。在这种情况下,您可以遍历每一行并简单地应用以下颜色属性:

代码语言:javascript
复制
int statusColumnIndex = 1; // Because it is the second column

int k = 0;
foreach (TableRow row in submitTable.Rows)
{
    if(k != 0) // Do this so it won't color the header row
    {
        if( row.Cells[statusColumnIndex].Text.Equals("yes") )
        {
            row.Cells[statusColumnIndex].BackColor = Color.FromArgb(255, 0, 0); // 255, 0, 0 is #ff0000 in RGB
        }

        else
        {
            row.Cells[statusColumnIndex].BackColor = Color.FromArgb(0, 255, 0); // 0, 255, 0 is ##00ff00 in RGB
        }
    }
    k++;
}

结果(不同随机值):

​

​

或

2.如果您想在填充表时给表涂上颜色,

在本例中,您可以在实例化TableCell对象以填充TableRow时向其应用颜色:

代码语言:javascript
复制
string statusValueFromSql = valueFromSqlQuery;
Color color;

if( statusValueFromSql.Equals("yes") )
{
    color = Color.FromArgb(255, 0, 0); // 255, 0, 0 is #ff0000 in RGB
}
else
{
    color = Color.FromArgb(0, 255, 0); // 0, 255, 0 is ##00ff00 in RGB
}

var cellStatus = new TableCell { BackColor = color };

最终结果与情景1完全相同。

我希望我的回答能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42032082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档