0

asp.net/vb.net 4.0, visual studio 2010 및 동적 데이터 스캐 폴딩을 사용하는 linq- 엔티티 모델을 사용하여 사용자가 편집 할 수있는 양식을 제공합니다 SQL 데이터베이스의 데이터.asp.net 동적 데이터의 요소 ID를 변경하는 솔루션

PageTemplates 폴더의 insert.aspx에 javascript 함수를 호출하는 버튼이 추가되었습니다. 나는 임의 ID의 asp.net 생성하기로 결정했습니다 무엇에 의해 요소에 액세스 할 수

var account = document.getElementById("ctl00_ContentPlaceHolder1_FormView1_ctl04_ctl00___account_TextBox1"); 

같은 것을 사용하고 있었다 처음

.

문제는 새로운 데이터 필드가 SQL 데이터베이스에 추가 될 때마다 asp.net은 다른 요소의 임의의 ID를 새 ID에 맞게 변경한다는 것입니다. this question으로 해결할 것입니다. 그러나 필드가 생성되기 때문에 .ClientID on을 호출 할 asp.net 객체가 없습니다.

해결 방법이 있습니까?

답변

0

결국 document.querySelector를 사용하여 종료했습니다. 훨씬 느리지 만 문제는 해결됩니다. 다음 코드는 "account"를 포함하는 첫 번째 요소를 저장합니다.

var test = document.querySelector("[id*=account]"); 
0

당신은 당신이 당신의 JS 코드에서 참조 할 필요가 각 컨트롤에 대한 ClientId 속성을 설정하여 기본 이름 지정 규칙을 재정의 할 수 있습니다. 컴파일시 생성되지 않기 때문에 항상 동일하게 유지됩니다.

+0

예, 컨트롤이 동적으로 생성되므로 해당 속성을 설정할 위치가 없습니다. – DylanReile

+0

여전히 할 수는 있지만 두통처럼 들리는 입력을 생성하는 메서드를 재정의해야 할 것입니다. 이 JS는 자동 생성 된 입력 상자에 다시 이벤트를 첨부 할 수 있도록 만들었습니까? 아니면 다른 용도로 사용할 수 있습니까? –

+0

JS는 사용자 입력을 기반으로 일부 필드를 자동 채우기를위한 것입니다. HTML 버튼이 있습니다. 저는 C# 대신 vb.net에있는 입력 생성 메소드를 재정의하는 예를 아직 보지 않았습니다. 너 하나있어? – DylanReile

관련 문제