2010-12-04 3 views
4

안녕하세요, 이벤트 내에서 동적으로 생성 된 html 컨트롤에 액세스하려고하는데이 액세스 할 수 없습니다.ASP.NET 코드 내의 클라이언트 측 동적 컨트롤 액세스

function addInput(field) 
{ 
...declaratives... 

var input = document.createElement("input"); 
input.id = field+count; 
input.name = field+count; 
input.type = "text"; 

... remainder of the code and the element is added to the DOM... 

} 

나는 또한 서버 페이지 제어 (Button1을이라는 버튼), 그리고 제가 원하는이 : 나는 자바 스크립트 사용하여 클라이언트 측의 요소를 만들려면 다음 코드를 사용하고

사용자가 버튼을 클릭 할 때입니다. 사용자가 동적으로 생성 한 입력 상자에 입력하고 데이터베이스에 저장한다는 점에서 세부 정보를보고 싶습니다. 그러나 protected void Button1_Click(object sender, EventArgs e) 이벤트에서 입력 필드에 액세스 할 수 없습니다.

이것이 가능합니까?

VS 2010 C# (v4.0)을 사용하고 있습니다.

답변

0

입력 필드가 DOM의 기존 양식 요소에 추가되었는지 확인해야합니다. 또한 폼에 동적 입력 (파일) 컨트롤을 추가 할 때 과거에 문제가 있었으며 .NET에서 볼 수 없습니다. 폼에 정적으로 정의 된 파일 입력이 하나 이상있는 경우가 아니면.

+0

안녕하세요. 양식에 추가되는 것처럼 보입니다. 나는 IE 용 usb 디버그이고 새로운 요소가 문서> HTML> 본문> 양식> DIV> SPAN> LI> 입력 있음을 보여주고있다. – blucsdd

7

자바 스크립트를 통해 클라이언트 측 HTML 컨트롤을 추가하십시오. ASP.NET은 페이지를로드 한 후가 아니라 렌더링 시간 일 필요가있는 runat = server가 아닙니다.

당신이 할 수있는 일은 "완료"한 모든 요소에 "이름"속성을 추가 한 다음 버튼 클릭으로 양식을 제출할 때 Request.Form 컬렉션을 통해 양식 요소를 확인할 수 있습니다.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    var inputValue = Request.Form["someId"]; 
} 

은 또한 버튼을 AutoPostBack="true"을 설정해야 할 수도 있습니다, 그래서 당신은 버튼을 클릭 할 때 양식을 제출합니다.

HTH

0

형태는에 enctype = "multipart/form-data"를 파일을 업로드 할 필요가 있고 asp.net가 추가되므로 정적 인 AT-1 이상이있을 때 동적 입력 만 표시 제어한다 이유 1 정적 파일 제어가있을 때. 정적 파일 입력 컨트롤이 없으므로 aspx 태그 또는 코드 숨김 형식으로 수동으로 enctype = "multipart/form-data"특성을 설정할 수 있습니다. Page.Form.Attributes.Add ("enctype", "multipart/form-data ");

관련 문제