2016-12-29 3 views
0

Ich habe GridView auf einem ASP .NET-Webformular. Diese GridView ist an eine SQLDataSource gebunden. Alle Spalten sind TemplateField. Das GridView befindet sich in einem UpdatePanel. Eine der Spalten ist DropDownList. Der HTML-Code für diese Dropdownlist ist wie folgt:Warum die Eigenschaft "Gridview backgroundcolor" beim Klicken auf die Linkschaltfläche im Feld "Template" nicht beibehalten wird

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

Das JavaScript für buildDropDown() Funktion ist:

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

Die Anwendung funktioniert gut, aber wenn ich auf die Update-Button im Gridview die Farbe der Zeile ändert zurück zu ursprünglichen.

Wie kann ich das beheben?

Antwort

0

versuchen, diesen adaequat

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

@Danish Parvadia Vielen Dank für Ihre schnelle Antwort. Das ist nicht richtig. Ihr Code malt das gesamte GridView und immer noch wechselt die Hintergrundfarbe zu Schwarz auf weißem Hintergrund, wenn ich auf den Update Button klicke. – TheDProgrammer

+0

hoffe es geht dir gut, ich warte immer noch auf deine antwort darauf. Grüße. – TheDProgrammer

Verwandte Themen