2012-10-11 4 views
0

ASP.NET 애플 리케이션에 테이블을 추가하고 동적으로 행을 추가합니다. 각 행에는 텍스트 상자를 포함하는 셀이 하나씩 있습니다. 모든 것을 동적으로 생성합니다.자바 컨트롤에서 ASP.NET 컨트롤 ID를 변경하십시오.

   tc = new TableCell(); 
       TextBox t_total = new TextBox(); 
       t_total.ID = "txtTotal" + dt.Rows[i]["Id"].ToString(); 
       tc.Controls.Add(t_total); 
       tr.Cells.Add(tc); 

내 텍스트 상자의 ID를 설정 한 다음이 ID를 사용하여 JavaScript 기능에서이 개체에 액세스합니다. JavaScript 기능에서이 ID를 어떻게 변경합니까? 예를 들어 내 텍스트 상자 ID가 처음에 "txtTotal1000"으로 설정된 경우이 JavaScript ID에서 "txtTotal2000"으로 ID를 변경하여이 새 ID를 사용하여 ID에 액세스 할 수 있습니다. 어떻게 할 수 있습니까?

+4

왜 그렇게 했습니까? 불가피하게 포스트 백에서 무언가를 깨뜨릴 것입니다. 양식을 수정했기 때문에 오류가 발생할 수도 있습니다 (잘못된 viewstate). runtimie는 거의 확실하게이를 공격으로 간주하고 포스트 백을 차단합니다. 왜 자바 스크립트에서 정확한 ID를 사용하지 않고서 만 사용할 수 있습니까? 런타임에서 ID를 생성하는 방법을 예측할 수 없기 때문에 단순히 클라이언트 스크립트에 ID가 무엇인지 결정하는 데 문제가있는 경우 더 좋은 옵션이 있습니다. http://stackoverflow.com/questions/641280/reference -asp-net-control-by-id-in-javascript – David

+0

글쎄, 내 ID를 바꿔야하는 상황이있다. 내게 귀찮게 할 수 있다고 생각하지만, 포스트 백 이후에 데이터를 사용하지 않을 것이다. 자바 스크립트를 사용하여 데이터를 읽습니다. 자바 스크립트를 사용하여 ID를 변경할 수 있습니까? –

+0

나는 그렇게 생각하지 않지만 다른 누군가가 아이디어를 가지고 있는지를 기다려 볼 것입니다. 개인적으로, 비록 당신이 그것을 할 수 있었다하더라도 나는 그것으로 귀찮게하지 않을 것입니다. 비표준 기술을 제안하는 것보다 기존 기술을 사용하는 것이 훨씬 쉽습니다. 사이드 스크립트에서 자동 생성 ID를 사용할 수 있도록 ID를 결정하면 *** 문제 ***가 해결됩니다. 모두가 조만간 필요에 부딪히며이를 처리하는 방법이 확립됩니다. ID를 변경하는 것은 아닙니다. 그것은 유지 보수 프로그래머가 쉬워집니다. 그러나 전적으로 이것을 할 수있는 방법이 있습니다. – David

답변

1

당신은 요소의 ID를 변경할 것

$("#txtTotal1000").attr('id','txtTotal2000'); 

이를 위해 jQuery를 사용할 수 있습니다.

관련 문제