Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何动态更改css样式_C#_Html_Css_Asp.net_Web Frontend - Fatal编程技术网

C# 如何动态更改css样式

C# 如何动态更改css样式,c#,html,css,asp.net,web-frontend,C#,Html,Css,Asp.net,Web Frontend,我试图改变css风格的中继器,以不同的颜色在不同的状态。预期输出是打印6种不同的状态,如:进行中、完成、撤回等。。目前它只有一种颜色,所以它只显示一种颜色。这里最具挑战性的部分是根据状态动态更改颜色。我如何做到这一点?目前,它基于下面的“status noAction text center”类提取样式。我应该对后台代码进行任何更改,还是只是前端css更改。有人能给我举个例子吗 .aspx代码: <div class="row"> <asp:Re

我试图改变css风格的中继器,以不同的颜色在不同的状态。预期输出是打印6种不同的状态,如:进行中、完成、撤回等。。目前它只有一种颜色,所以它只显示一种颜色。这里最具挑战性的部分是根据状态动态更改颜色。我如何做到这一点?目前,它基于下面的“status noAction text center”类提取样式。我应该对后台代码进行任何更改,还是只是前端css更改。有人能给我举个例子吗

.aspx代码:

<div class="row">
                <asp:Repeater ID="rptStatuses" runat="server">
                    <ItemTemplate>
                        <div class="col-md-4 col-sm-4">
                            <div class="status noAction text-center">
                                <div class="banner">

                                    <asp:Label runat="server"> <%# Eval("ID") %></asp:Label>
                                </div>
                                <div class="label"><%# Eval("Name") %></div>
                            </div>
                        </div>
                    </ItemTemplate>
                </asp:Repeater>

.cs代码相关部分

private void GB()
        {

            var surveyId = 55;
            var stateLabels = _manageDatasets.GetStateLabels(surveyId);
            List<Status> statusesList = new List<Status>();
            foreach (var sl in stateLabels)
            {
                if (sl.Key != -1)
                    statusesList.Add(new Status { ID = sl.Key.ToString(), Name = sl.Value }
                  );
            }
            this.rptStatuses.DataSource = statusesList;
            this.rptStatuses.DataBind();
}
private void GB()
{
var surveyId=55;
var stateLabels=\u managedataset.GetStateLabels(surveyId);
列表状态列表=新列表();
foreach(stateLabels中的var sl)
{
如果(sl.Key!=-1)
statusesList.Add(新状态{ID=sl.Key.ToString(),Name=sl.Value}
);
}
this.rptStatuses.DataSource=statusesList;
this.rptstatus.DataBind();
}

我认为您要做的是更改html中的类,只需使用嵌入的代码即可根据状态动态更改横幅颜色等。您想要的嵌入式代码看起来像这样-

<div class="col-md-4 col-sm-4">
    <% if(status == "noAction") { %>
        <div class="status noAction text-center">
            <div class="banner">

                <asp:Label runat="server"> <%# Eval("ID") %></asp:Label>
            </div>
            <div class="label"><%# Eval("Name") %></div>
        </div>
    <% } %>

我认为您要做的是更改html中的类,只需使用嵌入的代码即可根据状态动态更改横幅颜色等。您想要的嵌入式代码看起来像这样-

<div class="col-md-4 col-sm-4">
    <% if(status == "noAction") { %>
        <div class="status noAction text-center">
            <div class="banner">

                <asp:Label runat="server"> <%# Eval("ID") %></asp:Label>
            </div>
            <div class="label"><%# Eval("Name") %></div>
        </div>
    <% } %>

若您的表中有任何列是从repeater获取数据源的,那个么这将非常容易做到 诸如此类

 <asp:Repeater ID="rptStatuses" runat="server">
                <ItemTemplate>
                    <div class="col-md-4 col-sm-4">
                        <div class='<%# Convert.toInt32(eval("ActionColumnName"))==1 ? "status In progress text-center" : Convert.toInt32(eval("ActionColumnName"))==2 ? "status complete  text-center" : Convert.toInt32(eval("ActionColumnName"))==3 ? "status withdrawn text-center" : "status noAction text-center" '>
                            <div class="banner">

                                <asp:Label runat="server"> <%# Eval("ID") %></asp:Label>
                            </div>
                            <div class="label"><%# Eval("Name") %></div>
                        </div>
                    </div>
                </ItemTemplate>
            </asp:Repeater>

若您的表中有任何列是从repeater获取数据源的,那个么这将非常容易做到 诸如此类

 <asp:Repeater ID="rptStatuses" runat="server">
                <ItemTemplate>
                    <div class="col-md-4 col-sm-4">
                        <div class='<%# Convert.toInt32(eval("ActionColumnName"))==1 ? "status In progress text-center" : Convert.toInt32(eval("ActionColumnName"))==2 ? "status complete  text-center" : Convert.toInt32(eval("ActionColumnName"))==3 ? "status withdrawn text-center" : "status noAction text-center" '>
                            <div class="banner">

                                <asp:Label runat="server"> <%# Eval("ID") %></asp:Label>
                            </div>
                            <div class="label"><%# Eval("Name") %></div>
                        </div>
                    </div>
                </ItemTemplate>
            </asp:Repeater>