Acceder a un control específico ubicado en la plantilla de pie de página de una columna usando el lado del cliente

Necesito acceder a una etiqueta (lblTotalWeight) que se encuentra en la plantilla de pie de página de una columna gridtemplate. A partir de ahí, quiero cambiar el primer plano, aunque quiero hacerlo todo del lado del cliente. Puede ver en mi función a continuación que ya accedí a cada fila con éxito, aunque parece que hacerlo para el pie de página no es tan sencillo. Mi investigación hasta ahora sigue conduciendo a soluciones del lado del servidor o, en un caso, a una situación codificada de fila [] celda [].

get_masterTableViewFooter aún no ha devuelto nada.

Oh, mi código detrás está en C#.

JavaScript:

    function GridCreated(sender, eventArgs) {
        grid = $find("<%=rgActivities.ClientID %>");
        var masterTable = grid.get_masterTableView();
        var rows = masterTable.get_dataItems();
        var total = 0.0;

        for (var row = 0; row < rows.length; row++) {
            var rcb = rows[row].findControl("rcbWeight");
            total += parseInt(rcb.get_value());
        }

        if (total== 100) {
           //lblTotalWeight = black;
        } 
        else {
          //lblTotalWeight = Red;
        }
    }

(Como nota al margen, rcb es RadComboBox).

¡Gracias!

preguntado el 03 de mayo de 12 a las 19:05

¿Por qué estás decidido a hacer esto del lado del cliente? No veo ninguna razón por la que debería ser un requisito. Creo que en realidad tendría más sentido hacer esto del lado del servidor. -

Estoy de acuerdo. La funcionalidad original era una simple adición de columna de cuadro de texto radnumérico que necesitaba ser del lado del cliente. Por alguna razón, mi cerebro se saltó y decidí que también debería obtener el lado del cliente total de la columna inicial. Ahora pensé que sería simple simplemente cambiar el color de la etiqueta mientras estaba aquí. -

Todavía quiero saber cómo hacer esto. -

1 Respuestas

Es posible que deba modificarlo un poco, pero algo como esto debería acercarlo:

var footerLabelID = '<%= ((GridFooterItem)rgActivities.MasterTableView.GetItems(GridItemType.Footer)[0]).FindControl("lblTotalWeight").ClientID %>';

var footerLabel = document.getElementById(footerLabelID);
if (footerLabel){
    footerLabel.innerText = "Hello World!";
}

contestado el 03 de mayo de 12 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.