jquery 대화 상자를 사용하고 jquery 대화 상자 안에 JqGrid를 표시하고 있습니다. 모든 것이 완벽하게 작동하지만 JqGrid는 편집 할 수없는 모달로 표시됩니다. 그래서 대화 상자 안에서 아무 것도 편집 할 수 없었습니다.Jquery 대화 상자에서 JqGrid가 편집 할 수없는 모달로 표시되고 있습니다.
난 ...
코드 로직을 닫고 난이 모든 대화 상자가 아닌 편집 모달로 표시되는 때까지 정상이되는 페이지를 새로 고침 경우에만 동일하게 유지 대화 상자를 다시 열 경우에도 잘하고 잘 작동합니다. UI 문제가 될 것 같습니다. 친절하게 도와주세요. 아무 래도 참조 용으로 아래에 내 코드를 게시하고 있습니다. 친절하게 볼 수 있고 문제를 해결하는 데 도움이됩니다.
This 내 aspx 코드입니다 :
<div>
<span id="span_create" style="color: #88b807; margin-left: 839px;
margin-top: -12px; cursor: pointer; display: block">Create</span>
</div>
<div id="Createdialog" style="display: none; overflow: hidden">
<table id="table" style="border-spacing: 7px 7px; margin-left: 5px">
<tr>
<td>
<span class="SubHeading" style="font-size: 10pt;">Private Space Name </span>
</td>
<td>
<asp:TextBox ID="txt_spacename" runat="server" />
</td>
</tr>
<tr>
<td>
<span class="SubHeading" style="font-size: 10pt;">Users </span>
</td>
<td>
<asp:TextBox ID="txt_users" TextMode="MultiLine" runat="server" />
</td>
<td>
<asp:Button ID="btn_addusers" Text="Add" Style="margin-left: 0px;" runat="server" />
</td>
</tr>
<tr>
<td>
<table id="users_grid">
</table>
</td>
</tr>
</table>
<input type="button" id="Btn_Submit" value="Create" style="margin-left: 280px; margin-top: 8px;"
runat="server" />
</div>
이것은 내 Js 코드입니다 :
$("#Createdialog").dialog({
autoOpen: false,
title: 'Create Private space',
modal: true,
position: 'center',
width: 900
});
$('#span_create').click(function() {
$("#Createdialog").find('input:text, textarea').val('');
$('#Createdialog').dialog('open');
return false;
});
$('#btn_addusers').click(function() {
$("#users_grid").jqGrid({
colNames: ['User_ID', 'Name', 'Email_Id'],
colModel: [{ name: 'User_ID', index: 'User ID', width: 130, editable: false, sortable: false },
{ name: 'Name', index: 'Name', width: 350, editable: false, sortable: false },
{ name: 'Email_Id', index: 'Email Id', width: 350, editable: false, sortable: false}],
width: 400,
height: 'auto',
multiselect: true,
modal: false
});
var UserID = $('#Header1_txt_users').val();
var datapost = {};
datapost.UserId = UserID;
var postJSONData = JSON.stringify({ 'postdata': JSON.stringify(datapost) });
$.ajax({
type: 'POST',
data: postJSONData,
url: 'PrivateSpaceService.asmx/GetUserDetails',
dataType: 'json',
async: false,
contentType: 'application/json; charset=utf-8',
success: function success(response) {
UserArr = response.d;
},
error: function failure(response) {
alert('failed');
}
});
var mydata;
for (var i = 0; i < UserArr.length; i++) {
mydata = {};
mydata.User_ID = UserArr[i].UserId;
mydata.Name = UserArr[i].UserName;
mydata.Email_Id = UserArr[i].EmailId;
$("#users_grid").jqGrid('addRowData', 'GridData_Row_' + (i + 1), mydata);
}
return false;
});
미안하지만 문제가 무엇인지 이해하는 것은 매우 어렵습니다. 예를 들어 "JqGrid가 편집 할 수없는 모달로 표시됩니다."라고 썼습니다. 모든 열에'editable : false' 속성을 사용합니다. 어떤 편집을해야할까요? 어떤 "편집 가능한 모달"을 의미합니까? 또한'addRowData'를 사용하여 그리드 본문을 매우 비효율적 인 방식으로 채 웁니다. 서버에서 Ajax별로로드 된 데이터로 그리드를 채워야하는 경우 jqGrid를 직접 사용하고 서버에서 반환 된 데이터 형식에 해당하는'jsonReader'와 같은 일부 jqGrid 옵션을 사용해야합니다. – Oleg
@Oleg jquery 대화 상자에서 "btn_addusers"를 클릭하면 jqgrid가 표시됩니다 .. 페이지의 모달 대화 상자처럼 대화 상자 (예 : 모달)로 표시됩니다 ... – Xavier
죄송합니다, 그러나 나는 당신이 의미하는 것을 이해하지 못합니다. jqGrid는 사용자가 생성 한 대화 상자의 시각적 요소 일뿐입니다. 그것이 "모달"이 될 수있는 방법은 무엇입니까? 나는 아직도 당신이 의미하는 편집의 종류를 이해하지 못합니다. – Oleg