2010-06-14 3 views
1

그래서 여러 개의 동적 사용자를 데이터베이스의 레코드에 추가 할 수있는 페이지가 있습니다.jquery.clone() 및 ASP.NET 양식

<div id="records"> 
     <div id="userRecord"> 
      Name: <asp:TextBox runat="server" ID="objNameTextBox"></asp:TextBox> <br /> 
      Phone Number: <asp:TextBox runat="server" ID="objPhoneNumberTextBox"></asp:TextBox> <br /> 
     </div> 
    </div> 

그리고 JQuery와 : 여기에 거친 시작 페이지의

$(function() { 
    $(".button").button().click(function (event) { addnew(); event.preventDefault(); }); 
    }) 
    function addnew() { 
     $('#userRecord').clone().appendTo('#records'); 
    } 

그래서 제 질문은 내가 형태로 모든 데이터를 폴링하고 추가 할 수 있도록 ASP.NET에서 사용합니까 무엇 #records div 내의 각 #userRecord div에 대한 고유 레코드? 예 - userRecord를 클래스로 변경해야합니다. 이것은 여기서 간단한 테스트 일뿐입니다.

JSON에서이 기능을 사용해야합니까? 나는 그것에 익숙하지 않지만 실제로 그것이 최선의 선택이라면 그것을 알아낼 수있다. 안내 주셔서 감사합니다!

+1

자바 스크립트 DOM 조작과 ASP.NET WebForms는별로 좋은 친구가 아닙니다. –

답변

2

런타임에서 HTML의 컨트롤 트랙을 유지하기 때문에 ASP.NET 웹 양식 컨트롤을 Javascript로 복제 할 수 없습니다. Javascript로 복제하려고하면 HTML이 복제되고 동일하게 보일 수 있지만 ASP .NET은 그들에 대해 아무것도 알지 못할 것입니다.

UpdatePanel을 사용하여 버튼을 사용하여 포스트 백을 트리거하고 프로그래밍 방식으로 백엔드에 컨트롤을 만들고이를 패널에 추가하면 수행하려는 작업을 모방 할 수 있습니다.

또 다른 방법은 HTML 입력을 만들어 웹 서비스 나 웹 메서드에 제출하고 거기에 데이터베이스에 실제로 삽입하는 것이지만 일반적인 ASP.NET 메서드는 해당 입력에서 작동하지 않습니다. ASP.NET에 관한 한 컨트롤이 아닙니다.

+3

"자바 스크립트로 ASP.NET 웹 양식 컨트롤을 복제 할 수 없습니다."... 그리고 지금 여기에 * 어떤 방법이 있는지 궁금하네요. 이 일을 할 수 ... –

+0

내게 시간과 좌절을 구해줘 고마워. – Jeff

0

ASP.NET 페이지의 다시 게시 중에 새 레코드를 추가하려는 경우 ... 행운을 빈다. 목록의 클라이언트 측에 새로운 '항목'을 추가 할 수 있는지 확신 할 수 없습니다. ASP.NET WebForms는 페이지의 상태를 유지하기 위해 뷰 상태 (사용자에게 반환 된 페이지의 HTML에 직접 포함 된 정보의 큰 얼룩임)를 사용하며 사용자가 쉽게 할 수 있다고 생각하지 않습니다. '이론적으로는 일 것입니다.) 뷰 상태를 클라이언트 측 (jQuery 또는 JavaScript를 사용하는지 여부에 관계없이) 업데이트하십시오.

아마도 내 자신의 상황이 충분히 유사 할 수도 있습니다. 항목 목록이있는 페이지가 있고 사용자가 새 항목을 추가 할 수있게하려면 원하는대로 입력 필드를 추가하고 JavaScript를 바인딩 할 특정 버튼을 추가하십시오 (비주얼 스튜디오 프로젝트의 다른 항목)에 대한 AJAX 요청을 만들고 JSON을 사용하여 데이터를주고받습니다 (기본 XML을 사용하는 것보다 훨씬 간단합니다). 그렇게하면 사용자가 백엔드 데이터를 변경하기 위해 전체 페이지를 웹 서버에 게시 할 필요가 없으며 페이지 데이터 자체를 구문 분석하여 어떤 항목을 추가해야하는지 결정할 필요가 없습니다 (예 : 데이터베이스