2011-11-17 3 views
0

해결 방법을 찾을 수없는 문제가 있습니다. 상위 페이지에서 동적으로 기본 사용자 컨트롤 (부모 페이지에서 선택한 항목 콤보 X를 기반으로 한 6 개의 다른 UC)을 호출하는 부모 페이지가 있습니다. UC 내에서 콤보 상자를 기반으로 UC 내에서 가시성을 제어하는 ​​javascript를 삽입 (registerClientscript)합니다. 모든 UC는 동일한 콤보를 가지고 있지만이 UC 내의 컨트롤은 다를 수 있습니다.C# : ClientScripts를 다시 등록하는 방법?

내가 처음으로로드 할 때 발생하는 문제는 JS가 올바르게 생성되었지만 부모로부터 콤보 X가 변경되면 UC의 부분 새로 고침이 트리거되어 다시 새로 등록됩니다. JS. 당신이 볼 수 있듯이

function DefineView(sender, eventArgs) { 
var comboSearch = $find('%%cmbSearchType%%'); 
//cmbSearch Section 
switch (comboSearch.get_selectedItem().get_value()) { 
[[MY CODE HERE] 
} 
} 

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "SearchVisibilityPPSA",jsFunction.Replace("%%cmbSearchType%%", cmbSearchType.ClientID),true); 

, 나는 된 ClientID를 교체하고 페이지의 첫 번째로드에,이 ctl00_PrincipalPlaceHolder_ctl00_cmbSearchType처럼 제대로 해결하지만 콤보 X를 변경할 때, 그것은 다시 스크립트를 다시로드하는 사용자 정의 컨트롤을 다시로드 위. 렌더링 된 HTML에서, 콤보 ID는 내 디버그에서 (CT01에 ct00에서 이름에 미묘한 변화를 주) ctl00_PrincipalPlaceHolder_ctl01_cmbSearchType로 이름이 변경되고,이 된 ClientID가 새로운 ID를 포함하지만, 어떻게 든이 렌더링 된 HTML에 regenrated 대체되지 않습니다 보았다.

내 질문이 UC가 호출 될 때마다 다시 렌더링 할 내가 JS를 강제로 어떻게 것 같아요? 어떤 이유로, 항상 ID를 강제로 ...이는 내가 어떤 ID를 assigining하지 않고 생성 된 내 동적 제어에 관한 생각

답변

0

(가 처음 작업하는 이유입니다) JS 렌더링 원본을 사용하고 있습니다 속성, 그것에게 같은 ...

을 유지
관련 문제