2009-03-09 4 views
2

동적으로 스타일을 추가하는 링크 버튼이 있습니다. 내가 뭘하고있는 방법으로 다음 이렇게되는 방법에있어서 있도록 다른 링크를 클릭하면 C#에서 동적으로 CSS 스타일을 변경합니까?

LinkButton lb = new LinkButton(); 
lb.Style["font-weight"] = "bold"; 

, 그것은 대담하고 대담 링크 버튼을 unbold해야 현재 내가 가지고, 하나를 클릭 시도 :

lb.Style["font-weight"] = "none"; 

위의 방법은 작동하지 않지만 이전에 선택한 링크는 굵게 표시됩니다.

나는 가능한 문제를 깨달았습니다. 나는 여러 개의 링크를 만들고 있는데, 링크의 이름이 모두 lb이므로 결코 굵은 글씨를 지우지 않는다. 이전에 선택한 링크를 기억하고 그 링크를 해제하는 방법을 생각하려고합니다.

답변

8

대체 방법을 제안 할 수 있습니까?

설정 CSS 스타일 :

링크가 링크의 CSS 클래스를 설정을 클릭
.selected { font-style: bold; } 

가 "선택"과에 다른 사람 ""할;

편집 : 인라인 스타일을 정의 할 때 그들이 덮어 쓰기 어려운 것, 문제에 CSS 클래스를

const string MY_CLASS = "links"; 
lb1.CssClass = MY_CLASS + " selected"; // selected 
lb.CssClass = MY_CLASS; // not selected 

당신은 신속하게 얻을 수를 기존의 수용합니다.

편집 2 :이 코드 같은

뭔가가 작동합니다. 목록의 모든 LinkButton을 반복해야 할 수도 있지만 그렇게 생각하지는 않습니다. ViewState를 LinkButtons에서 해제하는 것뿐입니다.

// container for links. so you can reference them 
// outside of the creation method if you wish. I'd probably call this method in the 
// Page_Init Event. 

List<LinkButton> listOfLinks = new List<LinkButton>(); 
const string MY_LB_CLASS = "linkButton"; // generic lb class 


private void createSomeLinks() { 

    for (int i = 0; i < 10; i++) { 
     // create 10 links. 
     LinkButton lb = new LinkButton() 
     { 
      ID = "lb" + i, 
      CssClass = MY_LB_CLASS 
     }; 
     lb.Click += new EventHandler(lb_Click); // Add the click event 
    } 

    // You can bind the List of LinkButtons here, or do something with them. 
} 

void lb_Click(Object sender, EventArgs e) { 

    LinkButton lb = sender as LinkButton; // cast the sender as LinkButton 
    if (lb != null) { 
     // Make the link you clicked selected. 
     lb.CssClass = MY_LB_CLASS + " selected"; 
    } 
} 
+0

사실,이 작업을 수행하고 있지만 이미 사용중인 CssClass가 있습니다. – Xaisoft

+0

무엇을 의미합니까? 이 점에 대해 더 설명해 주시겠습니까? – Armstrongest

+0

링크에 설정하고있는 cssclass가 있습니다. 그 클래스는 절대로 제거되지 않습니다. 링크가 굵게 나타나는 유일한 시간은 선택 될 때입니다. 다른 링크를 선택하면 굵게 스타일을 제거하고 싶습니다. – Xaisoft

1

ListBox1.Attributes.Add("style","font-weight:bold");ListBox1.Attributes.Add("style","font-weight:normal");

을 시도하거나 더 나은는 // CSS를

.active {font-weight:bold} 
.notactive {font-weight:normal} 

// #

ListBox1.CssClass = "active"; 
ListBox1.CssClass = "notactive "; 
+0

대담한 작품을 클릭하고 다른에 일반 폼에 대한 링크를 재설정 클릭 이벤트 자체가 false로 가능 뷰 상태 속성을 설정 내가 굵은 글씨를 지우고 싶을 때, 그것이 효과가 없다는 것입니다. – Xaisoft

2

이 lb.Style.Remove을 시도 C ("글꼴

입니다 -무게"). 나는 그것을 테스트하지는 않았지만 시도해 볼 수 있습니다.

또는 Font.Bold 속성 설정을 시도한 적이 있습니까?

lb.Font.Bold = true; 
+0

이것을 지적 해 주셔서 고맙습니다. 실제로이 방법을 과감하게 설정할 수 있다는 사실을 잊어 버렸습니다. – Xaisoft

0

시도해 볼 수 있습니다. lb.Style.Remove ("font-weight");

0

는 링크 버튼의 클릭 이벤트에서 글꼴을 굵게 설정하고

관련 문제