#c# #javascript #jquery #asp.net #gridview
#c# #javascript #jquery #asp.net #gridview
Вопрос:
У меня есть этот gridview, в котором я хочу, чтобы определенные строки мигали в зависимости от некоторых условий. Я пробовал javascript и 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 с их сайта и включить ее в свой проект.