jquery 1.6.2.mins와 최신 jqGrid - jqGrid 4.5.4를 사용하여 jqGrid를 표시하려고합니다.jqGrid JSON map이 INDEX 값을 읽지 않습니다.
내 프로젝트 설정은 다음과 같습니다 ASP.NET - MVC2이
문제는 닷넷 4.0 비주얼 스튜디오 2010을 프레임 워크를 사용하여 내 C# 클래스에서 나는 것 데이터베이스에서 모든 행을 추가 해요 한 지점 또는 다른 지점에서 사용. 두 행을 처음에 표시하고자합니다 (NAME
, DESCRIPTION
).
jqGrid는 두 개의 행을 표시하지만 첫 번째 행에 내 ID 행을 표시하여 설명 열의 내용을 표시해야합니다. 그래서 기본적으로 일어나는 일은 행이 오른쪽으로 이동하고 열 매핑이 작동하지 않는다는 것입니다. NAME = 'NAME_TXT'
,하지만 어떤 이유로 디스플레이에 표시되는 내용은 NAME = ID
입니다. 나는 또한 내가 JSON 데이터 내가 console.log("JSON DATATYPE: " + $datatype)
에 뭔가 같은 객체를 표시 어떻게 다시 C# 코드에서 점점 모든 것을 표시 할 수있는 방법을 알고 싶은 것입니다
colNames: ['NAME', 'DESCRIPTION'],
colModel: [
{ name: 'NAME', index: 'NAME_TXT', align: 'left' },
{ name: 'DESCRIPTION', index: 'DESCRIPTION_TXT', align: 'left'}
],
.
감사합니다.
자바 스크립트 코드 :
$(function() {
$grid = $("#grid");
$grid.jqGrid({
type: 'GET',
contentType: "application/json; charset=utf-8",
url: '/csc/devapp1/Home/LinqGridData/',
datatype: 'json',
colNames: ['NAME', 'DESCRIPTION'],
colModel: [
{ name: 'NAME', index: 'NAME_TXT', align: 'left' },
{ name: 'DESCRIPTION', index: 'DESCRIPTION_TXT', align: 'left'}],
sortname: 'NAME_TXT',
sortorder: "desc",
repeatitems: false,
viewrecords: true,
height: '500px',
autowidth: true});
});
C# 코드 : 나는 과거에 시도
public ActionResult LinqGridData(string sidx, string sord, int page, int rows)
{
var context = new CSCEntities();
var jsonData = new
{
total = 1,
page = page,
records = context.tbl_Quickfix_Toolbar.Count(),
rows = context.tbl_Quickfix_Toolbar.AsEnumerable().Select(n =>
new { n.QUICKFIX_ID,
cell = new string[] {
n.QUICKFIX_ID.ToString(),
n.NAME_TXT.ToString(),
n.DESCRIPTION_TXT.ToString(),
n.INSTRUCTIONS_TXT.ToString(),
n.TYPE_TXT.ToString(),
n.FIXLINK_TXT.ToString()}
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
다른 C# 코드는 작동하지 않았다 :
public ActionResult GridData(string sidx, string sord, int page, int rows)
{
CSCEntities entities = new CSCEntities();
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = entities.tbl_Quickfix_Toolbar.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords/(float)pageSize);
var jsonData = new {
total = totalPages,
page = page,
records = totalRecords,
rows = (
from entity in entities.tbl_Quickfix_Toolbar
select new {
id = entity.QUICKFIX_ID,
cell = new string[] {
entity.NAME_TXT.ToString(),
entity.DESCRIPTION_TXT.ToString(),
entity.QUICKFIX_ID.ToString(),
entity.INSTRUCTIONS_TXT.ToString() }
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
올레그, 당신이 제안한 모든 변경 작업이 아닙니다. 그래서 내가하려고했던 것은 : 1. 테이블에 두 개의 열을 표시해야하는데 테이블은 에만 약 20 개의 행이 있습니다. 즉시 모든 것을 표시하므로 은 결코 문제되지 않았습니다. 2. 표시에 대한 추가 열에 대한 정보를 툴팁이나 대화 상자로 사용해야했습니다. 그래서 내 서버 측 코드에서 AsEnumerable() 함수 호출을 제거하려고했는데 그리드가 부러졌습니다. 당신이 권하고 싶었던대로 select 문 다음에 배치하려고했는데 그리드도 손상되었습니다. 당신의 제안 중 일부는 도움이되었습니다. 고맙습니다. – JEuvin
AsEnumerable() 서버 측 코드 전에 사용했던 서버 측 코드도 추가했습니다. 그게 효과가 없었고 왜 그런지 모르겠다. 또한 데이터 형식을 로컬로 변경하려고하면 그리드가 손상됩니다. – JEuvin