Почему свойство backgroundcolor Gridview не сохраняется при нажатии кнопки ссылки в поле шаблона
У меня есть GridView на веб-форме ASP .NET. Этот GridView связан с источником данных SQLDataSource. Все столбцы являются TemplateField. GridView находится внутри UpdatePanel. Одним из столбцов является DropDownList. HTML-код для этого DropDownList выглядит следующим образом:
<asp:DropDownList ID="DropDownList1" onchange="buildDropDown(this)" runat="server" Text='<%# Bind("[r_cal_M]") %>'>
<asp:ListItem></asp:ListItem>
<asp:ListItem>2016-09</asp:ListItem>
<asp:ListItem>2016-10</asp:ListItem>
<asp:ListItem>2016-11</asp:ListItem>
<asp:ListItem>2016-12</asp:ListItem>
</asp:DropDownList>
JavaScript для функции buildDropDown():
function buildDropDown(obj) {
var status = obj.options[obj.selectedIndex].value;
var row = obj.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
var ddlReason = row.cells[1].getElementsByTagName('SELECT')[0];
switch (status) {
case "":
row.style.backgroundColor = "rgb(255, 255, 255)";
row.style.color = "rgb(0, 0, 0)";
break;
case "2016-09":
row.style.backgroundColor = "rgb(198, 239, 206)";
row.style.color = "rgb(0, 97, 0)";
break;
case "2016-10":
row.style.backgroundColor = "rgb(1255, 199, 206)";
row.style.color = "rgb(156, 0, 6)";
break;
case "2016-11":
row.style.backgroundColor = "rgb(255, 235, 156)";
row.style.color = "rgb(156, 101, 0)";
break;
case "2016-12":
row.style.backgroundColor = "rgb(255, 255, 255)";
row.style.color = "rgb(0, 0, 0)";
break;
}
}
Приложение работает нормально, но когда я нажимаю кнопку обновления в GridView, цвет строки меняется на исходный.
Как я могу это исправить?
1 ответ
Попробуйте это работает нормально
<script type="text/javascript">
function buildDropDown(obj) {
var status = obj.options[obj.selectedIndex].value;
var row = obj.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
switch (status) {
case "":
row.parentNode.parentNode.style.backgroundColor = "rgb(255, 255, 255)";
row.parentNode.parentNode.style.color = "rgb(0, 0, 0)";
break;
case "2016-09":
row.parentNode.parentNode.style.backgroundColor = "rgb(198, 239, 206)";
row.parentNode.parentNode.style.color = "rgb(0, 97, 0)"
break;
case "2016-10":
row.parentNode.parentNode.style.backgroundColor = "rgb(1255, 199, 206)";
row.parentNode.parentNode.style.color = "rgb(156, 0, 6)";
break;
case "2016-11":
row.parentNode.parentNode.style.backgroundColor = "rgb(255, 235, 156)";
row.parentNode.parentNode.style.color = "rgb(156, 101, 0)";
break;
case "2016-12":
row.parentNode.parentNode.style.backgroundColor = "rgb(255, 255, 255)";
row.parentNode.parentNode.style.color = "rgb(0, 0, 0)";
break;
}
}
</script>