Alterar Conteudo de um RadNumericTextBox dentro de um RadGrid

Seguinte problema que estava acontecendo comigo, precisava pegar um controle RadNumericTextBox que está dentro de um RadGrid do Telerik via javascript e depois disso efetuar a alteração do valor do mesmo. Até consegui alterar o valor com javascript puro e com Jquery para pegar o controle e alterar, porém ao fazer isso o controle não respeita a mascara, mesmo chamando o blur() após a alteração, ai a saída é utilizar os métodos internos do Telerik.

Primeiramente é necessário pegar o controle da sua linha aonde o campos está, utilizando a seguinte chamada

      var linhaGrid = $find("#ctl00_conteudo_uscTeste_gridExemplo").get_masterTableView().get_dataItems()[indiceLinha]; //pega a linha do grid

Apos isso voce pode utilizar o metodo findControl passando apenas o Id do Objeto não precisando passar o ClientID e sim apenas o ID e sem o ‘#’

    var objQuantidade = linhaGrid.findControl(idObjQuantidade); //apenas o Id, não pode ser o ClientId

Após isso voce pode Pegar ou setar o valor com os metodos get_value() e set_value(number), assim quando atualizado ele já atualiza a mascara.

Segue metodo completo :

function AtualizarValorNoGrid(clientIdGrid, indiceLinha, idObjQuantidade){

var linhaGrid = $find(clientIdGrid).get_masterTableView().get_dataItems()[indiceLinha]; //pega a linha do grid

var objQuantidade = linhaGrid.findControl(idObjQuantidade); //apenas o Id, não pode ser o ClientId

txtlValorTotal.set_value(parseFloat("2.55"));      //Chamando esse metodo ele respeita a  mascara definida

var valor = txtlValorTotal.get_value();              //retorna valor

}
Anúncios