2008-11-09 3 views

답변

0

ASP.NET에서 도입 한 이름 바꾸기 때문에 ASP의 컨트롤을 찾기 위해 하단의 함수를 사용합니다. 일단 컨트롤이 있으면 필요에 따라 높이/너비를 설정할 수 있습니다.

example usage: 

<input type='button' value='Expand' onclick='setSize("myDiv", 500, 500);' /> 

... 

function setSize(ctlName, height, width) { 
    var ctl = asp$(ctlName, 'div'); 
    if (ctl) { 
     ctl.style.height = height + 'px'; 
     ctl.style.width = width + 'px'; 
    } 
} 


function asp$(id, tagName) { 
    var idRegexp = new RegExp(id + '$', 'i'); 
    var tags = new Array(); 
    if (tagName) { 
     tags = document.getElementsByTagName(tagName); 
    } 
    else { 
     tags = document.getElementsByName(id); 
    } 
    var control = null; 
    for (var i = 0; i < tags.length; ++i) { 
     var ctl = tags[i]; 
     if (idRegexp.test(ctl.id)) { 
      control = ctl; 
      break; 
     } 
    } 

    if (control) { 
     return $(control.id); 
    } 
    else { 
     return null; 
    } 
} 
1

당신은 컨트롤 .ClientID 일부 자바 스크립트를 사용하고 그런 식으로 변경할 수 있습니다.

CSS 높이/너비 또는 일부 컨트롤에서 직접 컨트롤 자체를 통해 변경할 수 있습니다.

1

예, 가능합니다. ASP 컨트롤은 일부 추가 된 특성을 사용하여 브라우저에서 HTML 컨트롤로 렌더링됩니다. ASP.Net 컨트롤을 만든 동안 ID를 컨트롤에 부여하면 HTML 컨트롤의 ID로 표시됩니다.

javascript의 getElementById() 함수를 사용하여 컨트롤에 액세스 할 수 있어야하며 CSS 속성 (위의 메시지에 지정된 스타일)을 수정할 수 있어야합니다.

당신이 사용하는 경우 JQuery와, 선택 및 CSS 스타일을 설정하면 쉽게 할 수있다, 예를

$ ("#의 myControl") CSS ("폭") == myNewValue.;

건배

+0

경고 :에서 ASP.NET 컨트롤의 ID 만 그렇지 않으면 시간에 의해 변경되고, 컨트롤이 마스터 페이지를 사용하지 않는 ASPX 페이지에 직접 경우 unmangled 클라이언트에 얻을 것이다 그것은 클라이언트에게 도착합니다. –

+0

예 : 버튼의 ID가 "Foobar"이고 ID가 "CPH"인 콘텐츠 위치 홀더가있는 마스터 페이지를 사용하여 페이지에있는 ID가 "UC"인 사용자 정의 컨트롤 내에있는 경우 클라이언트에서 "ctl00_CPH_UC_Foobar"와 같은 것으로 끝납니다. 이 사실을 알고 있어야합니다. –

+0

좋은 지적 Jason. –

관련 문제