홈>
더 명확하게하기 위해 글을 다시 쓰고 있습니다
다음과 같은 행동을하는 HomeController가 있습니다
public ActionResult About()
{
MapDetailsRepository repMapDetail = new MapDetailsRepository("name=ge");
YearRepository repYear = new YearRepository("name=ge");
SuperMapModel smM = new SuperMapModel();
smM.saVM = new StudentAssessmentViewModel();
MapDetailResultSet mapDetailResultSet = repMapDetail.GetMapDetails(53);
smM.saVM.mapDetails = mapDetailResultSet.mapDetails.ToList();
smM.saVM.results = mapDetailResultSet.results.ToList();
smM.saVM.students = mapDetailResultSet.students.ToList();
smM.scM = new SearchControlViewModel();
smM.scM.YearList = new SelectList(repYear.GetAll(), "yearID", "year");
return View(smM); }
public ActionResult DisplaySearchResults(string searchText) {
MapDetailsRepository repMapDetail = new MapDetailsRepository("name=ge");
SuperMapModel smM = new SuperMapModel();
smM.saVM = new StudentAssessmentViewModel();
MapDetailResultSet mapDetailResultSet = repMapDetail.GetMapDetails(22);
smM.saVM.mapDetails = mapDetailResultSet.mapDetails.ToList();
smM.saVM.results = mapDetailResultSet.results.ToList();
smM.saVM.students = mapDetailResultSet.students.ToList();
return PartialView("~/Views/Maps/_MapDetailsList.cshtml", smM.saVM);
}
SuperMapModel은 2 개의 뷰 모델이있는 수퍼 클래스입니다 -검색 패널 부분 제어를위한 scM -MapDetailList 부분 제어용 saVM
페이지로드시 SuperMapModel은 각 모델을 각 부분 제어에 전달하는보기로 전달됩니다
<div>
@Html.Partial("_SearchPanel", Model.scM)
</div>
<div class="row">
<div class="col-md-12 table-responsive" >
@Html.Partial("~/Views/Maps/_MapDetailsList.cshtml", Model.saVM)
</div>
내 MapDetails PArtial Control은 매우 복잡하므로 제거 된 버전을 제공합니다
<table>
<thead>
<tr><th/><th/><th/></tr>
<tr><th/><th/><th/></tr>
</thead>
<tbody>
@foreach(ShortStudent geStudent in Model.students)
{
<tr>
<td>@geStudent.firstname</td>
foreach (run it x number of times)
{
<td>
@foreach (ShortResult geResult in Model.results)
{
if (geResult.ResultValue != null)
{
<script>{ setResultValue(@colIndex, @rowIndex, '@geResult.ResultValue'); }</script>
}
}
</td>
}
</tr>
}
</tbody>
</table>
이 setResultValue 함수는 기본보기 (정보)에 정의되어 있으며 현재 td의 innerhtml을 설정합니다.
function setResultValue(colIndex, rowIndex, resultValue) {
alert("inside about");
var cell = $("#MapDetails").children().children()[rowIndex].children[colIndex];
cell.innerHTML = resultValue;
}
P.S. 이 격자는 document.ready에서 검도 격자로 변환됩니다
이제 페이지로드에서 완벽하게 작동하지만 검색 패널 내부에서 검색 버튼을 클릭하면 다음을 수행합니다 (검색 패널 부분 제어에서 정의)
function refreshGrid() {
alert("search panel");
var url = '@Url.Action("DisplaySearchResults", "Home")';
$("#MapDetails").load(url, { searchText: "Lee" }, function () {
alert("success");
});
}
P.S. 콜백은 절대로 해고되지 않습니다
이제DisplaySearchResults
의 새 데이터로 부분 뷰만 바인딩합니다.이제 분명히 메인 페이지에서 setResultValue 스크립트 함수를 찾을 수 없으므로 부분보기 mapdetailslist (동시에 나쁜 습관 임)에서 동일한 스크립트 함수 setResultValue를 복제했습니다.
업데이트
디버깅 후 더 자세한 정보를 얻었으므로 이제 새로운 문제는 페이지로드에 있습니다. $( "# MapDetails"). children (). children () [rowIndex] 버튼 클릭 후 동일하게 정의되지 않음
- 답변 # 1
관련 자료
- javascript - 요소 뒤의 innerText 찾기
- javascript - js, jquery - 요청하는 스크립트 바로 위에있는 요소를 선택 하시겠습니까?
- html - 기존 요소 jQuery에 텍스트 문자열 추가
- html - css 및 jquery를 사용하는 사용자 당 한 번 3 초 후에 팝업을 표시하는 방법은 무엇입니까?
- javascript - 값이 1000이되면 Nodejs 문제
- javascript - jquery를 통해 가상 요소 CSS를 특정 ID에 추가하는 것은 다른 요소에도 적용됩니다
- php - false를 반환 한 후에도 Jquery Ajax 양식 제출?
- javascript - jquery/javasript - url 변경 후 코드 실행
- reactjs - 반응 - 배열에서 요소를 삭제 한 후 삭제 된 요소가 표시됩니다
- javascript - html 요소의 선택된 행을 통한 jquery 루프 - 데이터 테이블
- html - - : after 요소가 페이지에 표시되지 않지만 라이브 서버 페이지에 표시됨
- javascript - after () 내부의 jQuery var
- javascript - MVC 컨트롤러에서 jquery 게시물로 게시 된 후 문자열이 비어 있습니다
- Python 목록의 특정 요소 뒤에있는 목록에서 요소를 제거하는 방법 (슬라이스 적용 불가)
- javascript - jquery - 첫 실행시 ajax 성공 후 hide modal 기능이 작동하지 않음
- Jquery, 양식이 비동기 적으로 제출 될 때 적절한 html 요소 수정
- python - 목록 요소 목록을 차례로 비우는 방법은 무엇입니까?
- javascript - jQuery 순차 함수는 각 루프에서 차례로
- "required - false"로 설정된 경우에도 jquery validation 유효성 검사 요소
- html - jQuery animate가 요소를 제거합니다
관련 질문
- javascript : 프론트 엔드에서 ajax 포스트에서 보낸 플라스크를 사용하여 백엔드에서 파일 검색
- html : 한 행의 버튼을 클릭할 때 테이블 열에서 동일한 클래스를 갖는 특정 행 텍스트를 얻는 방법
- javascript : 중첩 Ajax 호출 문제
- javascript : HTML MVC TextBox 자동 완성 기능이 일부 입력을 무시합니다.
- jquery : Laravel DataTable을 토글하기 위해 확인란을 켜는 방법
- javascript : 탐색 요소를 활성화/비활성화하기 위해 웨이포인트가 있는 단일 호출기 탐색을 만드는 방법은 무엇입니까?
- javascript : Codeigniter + Ajax, 페이지 새로 고침 없이 양식을 여러 번 제출할 수 없음
- javascript : 사용자 정의 속성을 통해 선택 레이블 html의 값 가져오기
- javascript : 간격 자리 표시자
- javascript : li 앵커 모바일 비활성화
그래서 문제는 다음 코드로 td 요소를 얻을 수 없다는 것입니다.
매우 해키 한 방법으로 해결했지만 더 깔끔한 솔루션을 원합니다
.test는 마크 업에서 볼 수 있듯이 내 td의 클래스입니다
부분 뷰 렌더링이 여전히 존재하는 경우 스크립트 요소 및 dom 요소를로드하는 순서에 대한 내 질문