Почему свойство 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>
Другие вопросы по тегам