ASP.NET MVC FlexGrid sorting
페이지 정보
작성자 Parkaaaa 작성일 2023-08-24 17:04 조회 362회 댓글 0건본문
관련링크
솔팅기능을 하기전입니다.
솔팅기능 후입니다.
안녕하세요 제가 처음에는 바인딩 되지않은 언바운드 그리드로 생성하였다가 ajax통신을 통하여 Controller에서 값을 받은후 그리드에 뿌려주는 식으로 그리드를 재생성하였습니다. 근데 재생성된 그리드는 sorting기능을 사용하면 그리드의 값들이 다 사라지고 헤더만 남는 현상이 발생하는데 어떻게 해야 하나요?
@(Html.C1().FlexGrid()
.Id("gFlexGrid")
.AutoGenerateColumns(false)
.IsReadOnly(false)
.AutoClipboard(true)
.SelectionMode(C1.Web.Mvc.Grid.SelectionMode.Row)
.AllowAddNew(false)
.CssClass("grid")
.ShowSort(true)
.AlternatingRowStep(0)
//.ItemsSourceId("getProductOrders")
.Columns(bl =>
{
bl.Add(cb => cb.Binding("REQD").Header("a").Width("130"));
bl.Add(cb => cb.Binding("spflag").Header("c").Width("130"));
bl.Add(cb => cb.Binding("clt").Header("as").Width("130").TemplateFunction("createButton").CssClass("link"));
bl.Add(cb => cb.Binding("cltn").Header("aas").Width("130"));
bl.Add(cb => cb.Binding("date").Header("qw").Width("250"));
bl.Add(cb => cb.Binding("bank").Header("qa").Width("250"));
bl.Add(cb => cb.Binding("acc").Header("ax").Format("c").Width("250"));
bl.Add(cb => cb.Binding("cmsr").Header("2").Format("p0").Width("250"));
bl.Add(cb => cb.Binding("deposit").Header("3").Width("250"));
bl.Add(cb => cb.Binding("saup").Header("4").Width("250"));
bl.Add(cb => cb.Binding("zipcd").Header("5").Width("250"));
bl.Add(cb => cb.Binding("cltadres").Header("6").Width("250"));
bl.Add(cb => cb.Binding("cltadres2").Header("7").Width("250"));
bl.Add(cb => cb.Binding("hptelnum").Header("8").Width("250"));
bl.Add(cb => cb.Binding("gdat").Header("9").Width("250"));
bl.Add(cb => cb.Binding("confrdate").Header("0").Width("250"));
bl.Add(cb => cb.Binding("contodate").Header("11").Width("250"));
bl.Add(cb => cb.Binding("amt").Header("12").Width("250"));
bl.Add(cb => cb.Binding("agnm").Header("13").Width("250"));
bl.Add(cb => cb.Binding("agmail").Header("14").Width("250"));
bl.Add(cb => cb.Binding("grade").Header("16").Width("100").Visible(false));
bl.Add(cb => cb.Binding("telnum").Header("17").Width("100").Visible(false));
bl.Add(cb => cb.Binding("hptelnum").Header("18").Width("100").Visible(false));
bl.Add(cb => cb.Binding("remarks").Header("21").Width("100").Visible(false));
bl.Add(cb => cb.Binding("auto").Header("22").Width("100").Visible(false));
bl.Add(cb => cb.Binding("JPNAME").Header("23").Width("100").Visible(false));
bl.Add(cb => cb.Binding("JPIMG2").Header("24").Width("100").Visible(false));
}).Selector(sb=> sb.ShowCheckAll(true))
)
이런식으로 그리드를 만들고 조회버튼을 누르면 function Load() {
$.ajax({
type: "POST",
url: "/Batch/GetData",
data: $('form').serialize(),
dataType: "json",
success: function (result) {
flex = wijmo.Control.getControl("#gFlexGrid"),
cv = flex.collectionView;
console.log("as", flex);
try {
cv._isFillingData = true;
cv.deferUpdate(function () {
cv.sourceCollection.clear();
result.forEach(function (item) {
@* item.Start = parseDate(item.Start);
item.End = parseDate(item.End);*@
cv.sourceCollection.push(item);
});
})
//tabA_grid(result);
} finally {
cv._isFillingData = false;
}
console.log("success");
},
error: function (err) {
console.log("Err");
}
});
} 클라이언트에서 서버로 요청하여 값을 받은후 push를 통하여 값을 넣어줬습니다. 감사합니다.
혹시 추가로 그리드 선택기(Selector)에서 선택을 하는데 컬럼(spflag)값이 1이면 선택기로 선택이 안되게 하는 그런 기능도 있을까요?
댓글목록
등록된 댓글이 없습니다.