строка gridview мигает в зависимости от некоторых условий

#c# #javascript #jquery #asp.net #gridview

#c# #javascript #jquery #asp.net #gridview

Вопрос:

У меня есть этот gridview, в котором я хочу, чтобы определенные строки мигали в зависимости от некоторых условий. Я пробовал javascript и jquery, но ничего не получалось.

пример javasccript

jquery

Я попробовал jquery по ссылке выше, но он выдает ошибку

0x800a1391 — Ошибка времени выполнения JavaScript: ‘$’ не определено

Я действительно хочу использовать его, потому что он соответствует моим текущим требованиям. Мое текущее требование состоит в том, что строки, которые удовлетворяют 3 набору условий, должны мигать

 <style type="text/css">
    .bgRow
    {
        background-color: white;
    }
    .norRow
    {
        background-color: Silver;
    }
</style>
<script src="~/Scripts/jquery-1.8.2.js"></script>
    <script src="yourUrl/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function setBG(GridAlarm)
        {
        var id = "#"   GridAlarm;
        $(id).find("tr").each(function ()//error comes here while debuggigng
        {
            var css = $(this).attr("class");
            if (css != null amp;amp; css == "bgRow")
                $(this).addClass("norRow").removeClass("bgRow");
            else if (css != null amp;amp; css == "norRow")
                $(this).addClass("bgRow").removeClass("norRow");

        });
        setTimeout("setBG('"   GridAlarm   "')", 1000); //1000 is equal to one second and call function every one second.
    }
</script>
  

код gridview в дизайне

 <asp:GridView ID="GridAlarm" CssClass="bgRow" EmptyDataText="NoData" CellPadding="7" CellSpacing="1" runat="server" DataKeyNames="id" AutoGenerateColumns="false" ShowHeader="true" OnRowDataBound="GridAlarm_RowDataBound" OnPageIndexChanging="GridAlarm_PageIndexChanging">
    <Columns>
        <asp:BoundField DataField="TagName" HeaderText="TagName" />
        <asp:BoundField DataField="Description" HeaderText="Description" />
        <asp:BoundField DataField="Value" HeaderText="Value"  />
        <asp:BoundField DataField="AlarmStatus" HeaderText="Alarm Status"/>
        <asp:BoundField DataField="AlarmRaisedDateTime" HeaderText="Alarm Raised"  />
        <asp:BoundField DataField="AlarmClearedDateTime" HeaderText="Alarm Cleared"  />
        <asp:BoundField DataField="AlarmAckDateTime" HeaderText="Alarm Acknowledgement"  />
        <asp:TemplateField HeaderText="Select">
          <ItemTemplate>
              <asp:CheckBox ID="chk_delete" runat="server" />
          </ItemTemplate>
         </asp:TemplateField>
    </Columns>
</asp:GridView>
  

и ниже код позади

 protected void GridAlarm_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        alarmStat = (e.Row.Cells[3].Text);
        ClearDate = (e.Row.Cells[5].Text);
        AckDate = (e.Row.Cells[6].Text);

        foreach (TableCell cell in e.Row.Cells)
        {
            if (alarmStat.Equals(System.Configuration.ConfigurationManager.AppSettings["A_Clear"].ToString()))
            {
                cell.BackColor = System.Drawing.Color.Green;
                cell.ForeColor = System.Drawing.Color.White;
            }
            else if (alarmStat.Equals(System.Configuration.ConfigurationManager.AppSettings["A_Raise"].ToString()))
            {
                if (!string.IsNullOrEmpty(AckDate) amp;amp; (string.IsNullOrEmpty(ClearDate)))
                {
                    cell.BackColor = System.Drawing.Color.Red;
        cell.ForeColor = System.Drawing.Color.White;
                }
                else if (string.IsNullOrEmpty(AckDate) amp;amp; (string.IsNullOrEmpty(ClearDate)))
                {
                    e.Row.CssClass = "bgRow";
                }
            }
        }
    }
}
  

мне также пришлось добавить следующее при загрузке страницы

 ClientScript.RegisterStartupScript(GetType(), "BG", "setBG('"   GridAlarm.ClientID   "')", true);
  

Но это выдает ошибку, как упоминалось выше..

Что касается условий, необходимых для мигания строк gridview, вы можете видеть в самом коде, то есть он должен мигать при повышении статуса, а AckDate и ClearDate равны нулю или пусты.. Status, AckDate, ClearDate присутствуют в виде столбцов в сетке, как вы можете видеть в коде.

Что не так в приведенном выше коде? Есть ли какой-либо другой способ решить эту проблему?

Комментарии:

1. из ошибки 1-й вопрос: включили ли вы jquery на свою страницу?

2. можете ли вы опубликовать свой код?

3. да, я опубликовал код, но некоторые из них не были опубликованы полностью, я снова отредактировал вопрос

4. вы используете 2 версии jquery?

5. попробуйте использовать эту ссылку <script src=»//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js» type=»text/javascript»></script> or you can download latest jquery from their site and include it in your project..

Ответ №1:

попробуйте использовать эту ссылку

 `<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>` 
  

или вы можете загрузить последнюю версию jquery с их сайта и включить ее в свой проект.