2012-12-10 7 views
0

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; 


    }); 
+1

미안하지만 문제가 무엇인지 이해하는 것은 매우 어렵습니다. 예를 들어 "JqGrid가 편집 할 수없는 모달로 표시됩니다."라고 썼습니다. 모든 열에'editable : false' 속성을 사용합니다. 어떤 편집을해야할까요? 어떤 "편집 가능한 모달"을 의미합니까? 또한'addRowData'를 사용하여 그리드 본문을 매우 비효율적 인 방식으로 채 웁니다. 서버에서 Ajax별로로드 된 데이터로 그리드를 채워야하는 경우 jqGrid를 직접 사용하고 서버에서 반환 된 데이터 형식에 해당하는'jsonReader'와 같은 일부 jqGrid 옵션을 사용해야합니다. – Oleg

+0

@Oleg jquery 대화 상자에서 "btn_addusers"를 클릭하면 jqgrid가 표시됩니다 .. 페이지의 모달 대화 상자처럼 대화 상자 (예 : 모달)로 표시됩니다 ... – Xavier

+0

죄송합니다, 그러나 나는 당신이 의미하는 것을 이해하지 못합니다. jqGrid는 사용자가 생성 한 대화 상자의 시각적 요소 일뿐입니다. 그것이 "모달"이 될 수있는 방법은 무엇입니까? 나는 아직도 당신이 의미하는 편집의 종류를 이해하지 못합니다. – Oleg

답변

0

5 월 인덱스가 문제가 될 수 있습니다. 다음은 z- 인덱스가 더 큰 샘플 코드의 예제 (http://jsfiddle.net/c3BPP/)이며 작동합니다. 100과 같은 z- 인덱스는 편집 할 수 없음

Try it.

+0

대화 상자가 정상적으로 작동합니다 .. JQgrid가 표시된 후에 만 ​​문제가 발생합니다. – Xavier

관련 문제