resolviendo el valor "indefinido" en ASP.NET MVC JQGRID Discustdowns
Al poblar dinámicamente los menores de JQGrid durante la edición de datos, aparece con frecuencia un valor "indefinido" no deseado. Esto se deriva de las inconsistencias entre la estructura de datos que JQGRID espera y el método de entrega de datos.
correcto formato de datos JqGrid:
El formato ideal para el valor del menú desplegable es: valor: "fe: fedEx; in: intime; tn: tnt"
con el método actual:
El enfoque actual utiliza ASP.NET MVC con JQuery $. Ajax ()
para obtener datos desplegables. A StringBuilder
manipula los datos recuperados para que coincidan con el formato de JqGrid, pero persiste una entrada adicional "indefinida".
DESPUDIR Hallazgos:
La depuración de Firebug indica que las citas adicionales introducidas por sb.ToString ()
son los culpables. JqGrid agrega sus propias citas, lo que lleva a citas dobles y al problema "indefinido".
una solución superior: usando dataUrl
y buildSelect
en lugar de manipular directamente la propiedad value
, una solución más robusta implica usar las propiedades de JqGrid dataUrl
y bieldselect
dentro de editOptions
o SearchOptions
. Estos permiten obtener datos y formateo de datos personalizados.
Ejemplo dataUrl
Action:
public JsonResult GetDestinationList() {
List allDestinations = GetAllDestinations();
return Json(allDestinations, JsonRequestBehavior.AllowGet);
}
ejemplo buildselect
function:
buildSelect: function(data) {
var s = '';
if (data && data.length) {
for (var i = 0, l = data.length; i
actualizado editOptions
:
{
name: 'destinations',
editable: true,
edittype: 'select',
editoptions: {
dataUrl: '/YourController/GetDestinationList', // Replace with your controller action path
buildSelect: function(data) {
// ... (buildSelect function from above) ...
}
}
}
notas importantes:
json (alldestinations);
sin jsonRequestBehavior.Allowget
, pero necesitará agregar ajaxSelectOptions: {type: "publicar"}
a sus opciones jqgrid.
se llama dentro de
$. Ajax () Success Handler, haciendo
jQuery.Parsejson (data.responsetext) innecesario.
/YourController/getDestinationList con la ruta real a su acción de controlador.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3