如何动态更改CSS样式

时间:2017-06-22 18:37:39

标签: c# html css asp.net web-frontend

我试图将转发器的css样式更改为不同状态的不同颜色。预期输出是打印6种不同的状态,如:正在进行,完成,撤消等等。目前它有一种颜色,所以它只显示一种颜色。这里具有挑战性的部分是根据状态动态改变颜色。我怎么做到这一点?目前,它基于下面的“状态noAction文本中心”类来提取样式。我应该对后面的代码进行任何更改,还是仅仅是前端css更改。有人可以给我一个例子。

.aspx代码:

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();
}

.cs代码相关部分

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        IntentFilter filtro = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);//"android.intent.action.MEDIA_BUTTON"
        MediaButtonIntentReceiver r = new MediaButtonIntentReceiver();
        filtro.setPriority(1000); //this line sets receiver priority
        registerReceiver(r, filtro);
    }


}

2 个答案:

答案 0 :(得分:0)

我认为您想要做的是更改您的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>
    <% } %>

答案 1 :(得分:0)

如果您的表中有任何列,其中转发器正在获取数据源,那么这将非常容易 类似的东西

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