2010-08-09 7 views
8

.net 4.0에서 작업하면서, 그것은 여전히 ​​모든 입력 컨트롤에 'ct100$ ...'값으로 시작하는 'name'특성이있는 것으로 보입니다.ct100이란 무엇이며 이름을 어떻게 바꿀 수 있습니까?

이름을 바꿀 수있는 방법이 있습니까?

각 컨트롤에 ID를 부여하고 clientidmode을 'Static'으로 설정하면 페이지의 '가장 빠른'컨트롤에도 여전히 접두사가 상속됩니다.

+1

.NET 4.0에서는 web.config에서''을 사용할 수 있습니다. 이 설정은 전세계의 컨트롤에 영향을 미칩니다. –

+0

'ct100'이 아니라'ctl00'입니다. – modiX

답변

5

마스터 페이지의 ID입니다.

Private Sub InitSub(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init 
    ID = "master" 
End Sub 

이 ID입니다 일반적으로 빈/널 그래서 그것이 그것이 ID를 생성하고 렌더링 할 때 (CT100에서 시작 올라가고)

: 나는 그것의 ID를 설정 내 masterpage에 Page_Init를 추가하여 변경 @ Scott Stafford와 마찬가지로, 귀하의 페이지에있는 모든 고객 ID에 접두어가 붙어 있기 때문에 짧게 유지하십시오.

나는 등 "mBio", "mHome"같은 단어를 사용 ..

+0

감사합니다. bob. Page_Load()에서도 설정할 수 있습니다. protected void Page_Load (object sender, EventArgs e) {ID = "m"; } } – maxp

+0

페이지로드가 조금 늦을 수 있으므로 안전하고 init (모든 사용자 정의 컨트롤이 클라이언트 ID가 해당 inits에 있음)에서 수행하십시오. –

2

을 왜 이름을 변경? 당신은 @ Bob Fincheimer가 말했듯이 그렇게 할 수 있습니까? 또한 이름을 바꾸면 새 이름을 짧게 유지하십시오. 생성 된 HTML 및 모든 POST 변수에 수백 번 표시되기 때문에 실제로 사이트의 성능에 영향을 줄 수 있습니다. 당신이 그것을 제거하려면

+2

내게 전화를 걸지만 그렇습니다. 성능 향상 ('ct100'대신 'm'으로 지정) – maxp

0

, 다음의 태그에 대한 귀하의 Web.config 보면 :

<system.web> 
    ... 
    <pages ... clientIDMode="*something*"> 
    </pages> 
    ... 
</system.web> 

가 clientIDMode = "뭔가"속성 지정을 제거합니다. 그냥 꺼내 줘.

** 나는 here에서 내 대답을 훔쳤습니다.

관련 문제