2009-07-15 2 views
2

런타임시 CSS 속성 값을 h1 color = "blue"및 all p color = "green"처럼 변경할 수 있습니까? 아무도 그것을 알고 있다면 나를 도와주세요!asp.net에서 CSS 속성 값을 동적으로 변경하십시오.

+0

을 어디에서이 작업을 수행 하시겠습니까? 자바 스크립트를 사용하고 계십니까? 코드 숨김에? 어떤 언어를 사용합니까? VB? 기음#? 추신 : 관련 태그가 많을수록 올바른 스킬 셋을 가진 사람이 늘어납니다. – Peter

답변

7

아주 쉽게 (난 당신이 서버 측을 수행 할 있으리라 믿고있어) - RUNAT = 서버로 제목을 선언하고 그에게 ID 제공 :

<h1 runat="server" id="someHeading">Blah</h1> 

그런 다음 프로그램 뒤에 코드에서 조작 할 수 있습니다 과 같이 :

<h1 id="someHeading" style="color:blue;">Blah</h1> 

당신이 할 수 있습니다 :

someHeading.Style.Add("color", "blue"); 

이 다음과 같은 HTML 렌더링됩니다 스타일 시트에서 스타일을 정의하고 런타임에 클래스를 동적으로 변경합니다. 당신이 동적으로 변화로

Update-는 다음이 더 적합 할 수 있습니다 : 나는 다른 사람이 클라이언트 측 그것을 수행하는 방법에 대한 답변을 게시 할 예정입니다 확신

someHeading.Style["color"] = "red"; 

. :-)

옵션은 서버 쪽을 살펴볼 때 스킨과 테마를 사용합니다. 자세한 내용은 ASP.NET FAQ을 참조하십시오.

1

JQuery와 당신은 단순히 대부분의 코드가 실행되면 HTML 만 생성되기 때문에 여러 HTML 태그에 CSS를 적용하는 선택이없는

$('h1').css("color","blue"); 

ASP.Net의 코드 숨김을 사용할 수 있습니다. 이것은 Page_PreRender 이벤트에서 발생합니다.

당신이 할 수있는 일은 렌더링 된 HTML을 얻고 정규식이나 일반 검색 대체를 사용하는 일부 검색 및 수정을 수행하는 것입니다.

Page_PreRender 이벤트에서 렌더링 된 html을 수정하면 나중에 문제가 발생하고 기본적으로 완료되지 않으므로 javascript를 사용하여이 작업을 수행 할 것을 권합니다.

+0

서버의 여러 컨트롤을 사용하는 경우 스킨/테마를 동적으로 변경하여 쉽게 수행 할 수 있습니다. – RichardOD

0

나는 그가 페이지의 모든 항목을 의미한다고 생각합니다. 난 그냥 현재 스타일 시트 후 헤더로 문자를 추가하는 것이 좋습니다 것입니다, 다음 코드와 인라인 스타일을 추가 : 나는 의도적으로 viewstate가 및 visbility을 비활성화 한

<asp:Literal ID="litInlineStyles" runat="server" EnableViewState="false" Visible="false"> 
    <style type="text/css"> 
    h1 
    { 
    color: {h1Colour} 
    } 
    p 
    { 
    color: {pColour} 
    } 
    </style> 
</asp:Literal> 

당신이 때마다 페이지를 선언해야하므로 {h1Colour}를 {pColour}로 바꾸고 리터럴을 표시하도록 설정합니다.

올바른 방향으로 안내 할 수 있도록 도와주세요.

+0

이것이 제가 한 페이지 수정에만 이상적이라는 것을 알아야합니다. 전 세계적으로 무언가를하고 있다면 아마도 테마를 사용할 것입니다. –

0

내가 당신을 위해 일하는 것이, 아래의 코드를 시도하십시오 :

someHeading.Attributes.CssStyle.Add(HtmlTextWriterStyle.Color, "red"); 
관련 문제