asp.net mvc보기에서 양식 안에 html 테이블이 있습니다. tablesorter jquery 플러그인도 사용하고 있습니다. 여기 jquery 작업 후 입력 컨트롤의 이름 특성을 다시 설정하는 방법
는 볼 수 있으므로, 텍스트 버튼을 갖는 제 2 열이 열이있다 (예 간략화) 테이블 코드<table id=managersTable>
<thead>
<tr>
<th>Manager</th><th>Remove</th>
</tr>
</thead>
<tbody>
<tr>
<td>Manager 1<input type='hidden' name='updater.managers[0].Id' value=2313 /></td>
<tr>
<td>Manager 2<input type='hidden' name='updater.managers[1].Id' value=3233/></td>
<td><input type='button' class=removeButtonManager value='Remove' name='remove' /></td>
</tr>
</tbody>
이다.
$(document).ready(function() {
$(".removeButtonManager").live("click", function(event) {
var row = $(this).closest("tr").get(0);
$(this).closest("tr").remove();
$("#managersTable").trigger("update");
$("#managersTable").trigger("appendCache");
});
});
모든 것이 하나의 문제를 제외하고 완벽하게 잘 작동 : 나는 그렇게 엮은 버튼을 클릭 할 때이 코드를 사용하여 HTML 테이블에서 행을 제거합니다. 나는 "제거"버튼을 클릭하면이 행을 제거하지만 문제는 다음
name='updater.managers[0].Id'
에 대한 지수는 현재 꺼져 있는지이고 당신이 해달라고하면 그것은 asp.net의 MVC 바인딩의 최신 버전처럼 보인다 귀하의 요소 색인 속성 (0,1,2, 등) 그것은 바인딩되지 않습니다.
그래서 만약 내가 그것의 0,1,2 원래로 완벽하게 작동하지만 내가 첫 번째 행을 삭제하면 나는 단지 목록 (1,2.) 및 asp.net mvc 실 거예요 바인딩이 개체 .
그래서 모든 행을 제거하면 아무런 문제가 없도록 행을 제거한 후에 각 요소의 [] 색인을 어떻게 재설정 할 수 있는지 알아 내려고 노력 중입니다. 항상 0부터 시작하는 연속 목록을 제공합니다.
그래서이 부분적 일이 블로그 게시물의 마지막 부분을 참조 자세한 내용은
. 하나의 문제는 위의 경우, 어디에 (요소 0,1) 시작하려면 2 행이 있고 첫 번째 행을 삭제 (위의 코드를 후에 내가 한 요소가 있어야합니다) 요소에서 두 번째 행의 데이터를 가져옵니다 0 (완벽)하지만 나는 또한 모든 속성이 설정된 객체를 반환하는 두 번째 요소 (1)를 얻습니다. 어떤 아이디어? – leora
나는 당신이 무슨 뜻인지 정말로 모르겠다. $ ("# managersTable"). find ("input [type = hidden]")는 배열을 반환하고 그 안에 두 개의 요소가 있습니까? 어쩌면 선택기가 더 구체적이어서 테이블 만 대상으로해야 할 수도 있습니다. 이 두 번째 객체에서 '모든 속성이 설정되었습니다.'라는 의미가 무엇인지 잘 모르겠습니다. –
처음에는 2 개의 행 (요소 0 & 1)이 있습니다. 그런 다음 첫 번째 행에서 제거를 클릭하면 한 행만 남았습니다.내가 컨트롤러에 제출할 때, 나는 아직도 내 컨트롤러로 전송 된 두 개의 요소를 보았다. 첫 번째 요소가 "원본"행 2 (행 1이 삭제 되었기 때문에 의미가 있음)처럼 보입니다. 그러나 배열의 두 번째 요소를 속성 세트가없는 컨트롤러에 보냅니다. 나는 단순히 첫 번째 행을 삭제 한 후 첫 번째 행을 삭제 한 이유가이 요소가 전달되는 이유를 확실히 모르지만이 요소 (일종의 해킹)를 무시하는 코드를 추가했다. 추가하려면 하나의 요소 만 가져야한다. – leora