Ya llevo semanas con este codigo que me esta rompiendo la cabeza. Ya estoy hasta la ma.... . pues la neta no le he encontrado...
Ok. asi rapido, en mi equipo de trabajo se deseo utilizar un componente "DevExpress.Web.ASPxGrid".. Es un Datagrid que segun como lo hace ver se hace maravillas con el . Ok.
Bueno yo tengo una web form en la cual es un catalogoo de permisos de menu. Ok en la primera columna se llama Permiso y contiene un objeto check box, por cada renglon. En el cual lanza un evento CheckedChange...
Esto es en el "ServerSide"
Cita:
cbo.EditorProperties.ClientSideEvents.CheckedChang ed.ClientFunction = "CheckedBoxes";
Y en el ClientSide, tengo esto:
Cita:
function CheckedBoxes(source, e){
//var value = ASPxGrid.GetFocusedRow().GetDataControllerRow ().GetValueByFieldName("vPermiso"));}
//var value = e.row.GetDataControllerRow().GetValueByColumnName ("vModulo");
//alert(value);
e.readOnly=true;
grid = GetGridCollection().Get("djPerfil");
val = grid.GetRow().GetDataControllerRow().GetValue(2);
alert("valor renglon " + val);
alert("Columnas " + grid.GetRowCount());
alert(" ") + ASPxClientCollection.Item();
//alert("value obten " + ASPxClientCheckBox.GetName());
//alert(" " + ASpxClientCheckBox.GetChecked());
//alert("Método " + ASPxCheckBox.GetDisplayTextByValue();
alert("hola checked");
//var fnamePolo = ASPxClientGrid.GetColumnCell(e.id);
//alert(fnamePolo);
var fNameElement = ASPxClientUtils.GetChildByTagName(e.htmlElement, "INPUT", 0);
alert(" " + fNameElement);
var obj = event.srcElement;
alert(obj.id);
alert(obj.value);
alert(e.row.GetIndex());
alert("index" + e.index());
// alert(source);
//var value = e.row.GetKeyValue();
//alert(value);
//alert(obj.value);
//var value = ASPxGrid.GetFocusedRow().GetDataControllerRow().Ge tValueByFieldName("vPadre"));
//alert(value);
}
//var value = ASPxGrid.GetFocusedRow().GetDataControllerRow ().GetValueByFieldName("vPermiso"));}
//var value = e.row.GetDataControllerRow().GetValueByColumnName ("vModulo");
//alert(value);
e.readOnly=true;
grid = GetGridCollection().Get("djPerfil");
val = grid.GetRow().GetDataControllerRow().GetValue(2);
alert("valor renglon " + val);
alert("Columnas " + grid.GetRowCount());
alert(" ") + ASPxClientCollection.Item();
//alert("value obten " + ASPxClientCheckBox.GetName());
//alert(" " + ASpxClientCheckBox.GetChecked());
//alert("Método " + ASPxCheckBox.GetDisplayTextByValue();
alert("hola checked");
//var fnamePolo = ASPxClientGrid.GetColumnCell(e.id);
//alert(fnamePolo);
var fNameElement = ASPxClientUtils.GetChildByTagName(e.htmlElement, "INPUT", 0);
alert(" " + fNameElement);
var obj = event.srcElement;
alert(obj.id);
alert(obj.value);
alert(e.row.GetIndex());
alert("index" + e.index());
// alert(source);
//var value = e.row.GetKeyValue();
//alert(value);
//alert(obj.value);
//var value = ASPxGrid.GetFocusedRow().GetDataControllerRow().Ge tValueByFieldName("vPadre"));
//alert(value);
}
Pero pasas esto que cuando se ejecuta este método, quiero tomar lo valores de l parametro "e" y no tiene nada lo mando con un alert y pues si me dice que es un object.. pero por ejemplo le pongo :
e.id, e.value, e.row.GetDataControllerRow... o ya minimo quiero extraer el index del objeto del rebnglo que hiso click , pues no me lo hace me marca error.... alert("index" + e.index());
Pues eso tiene que ver mucho a lado del cliente, ya he enviado varios correos a los de soporte del producto, pero no me dan solución....
Y lo que pasa que esto solo pasa en este evento y otros eventos me permite acceder facilemnet a las columnas y renglones.... ejemplo:
Cita:
<AfterStartEdit>
function(source,e){
polo = e.row.GetDataControllerRow().GetValueByColumnName( "Terminal");
var fNameElement = ASPxClientUtils.GetChildByTagName(e.htmlElement, "INPUT", 0)
if(fNameElement != null && fNameElement.id != ""){
if (!polo){
if(e.column.GetDataControllerColumn().GetName() == "vAlta"){
fNameElement.Checked = false;
fNameElement.disabled = true;
//fNameElement.visible = true;
fNameElement.style.visibility='hidden';
}
if(e.column.GetDataControllerColumn().GetName() == "vBaja"){
fNameElement.Checked = false;
fNameElement.disabled = true;
//fNameElement.visible = true;
fNameElement.style.visibility='hidden';
}
}
}
}
</AfterStartEdit>
function(source,e){
polo = e.row.GetDataControllerRow().GetValueByColumnName( "Terminal");
var fNameElement = ASPxClientUtils.GetChildByTagName(e.htmlElement, "INPUT", 0)
if(fNameElement != null && fNameElement.id != ""){
if (!polo){
if(e.column.GetDataControllerColumn().GetName() == "vAlta"){
fNameElement.Checked = false;
fNameElement.disabled = true;
//fNameElement.visible = true;
fNameElement.style.visibility='hidden';
}
if(e.column.GetDataControllerColumn().GetName() == "vBaja"){
fNameElement.Checked = false;
fNameElement.disabled = true;
//fNameElement.visible = true;
fNameElement.style.visibility='hidden';
}
}
}
}
</AfterStartEdit>
OK. ya intente de todo pero no me surge efecto, si alguien me pudiera ayudar o dar una idea , please!!!... Saludos!!!