2010-03-08 5 views
1

J'ai les entrées suivantes dans le fichier css.L'appel CSS du code ne fonctionne pas

a.intervalLinks { font-size:11px; font-weight:normal; color:#003399; text-decoration:underline; margin:0px 16px 0px 0px; } 
a.intervalLinks:link { text-decoration:underline; } 
a.intervalLinks:hover { text-decoration:none; } 
a.intervalLinks:visited { text-decoration:underline; } 
a.selectedIntervalLink { font-size:12px; font-weight:bold; color:#003399; text-decoration:none; margin:0px 16px 0px 0px; } 
a.intervalLinks:active { text-decoration:underline; font-size:large ; } 

Edité pour le procès:

a.big-link:link{} 
a.big-link:visited {} 
a.big-link:hover{} 
a.big-link:active{font-size:1em;} 

Chaque fois que je prends le clic sur des liens (non représenté) qui est intégré dans la page Web ..Je peut voir le changement dans le lien

a.intervalLinks:active { text-decoration:underline; font-size:large ; 

(la police du lien deviendra grand)

mais après avoir cliqué sur la page est actualisée ..la les changements iront

je veux garder le changement pour jamais dans ce lien ... même il y a une page de rafraîchissement

je compris que ..ce peut atteindre que throughg le code derrière de asp.net

Le code suivant devrait fonctionner: mais malheureusement, ce n'est pas ... quelqu'un peut-il aider?

protected override void OnInit(EventArgs e) 
     { 
      rptDeptList.ItemDataBound += new RepeaterItemEventHandler(rptDeptList_ItemDataBound); 

     } 

     void rptDeptList_ItemDataBound(object sender, RepeaterItemEventArgs e) 
     { 
      if (e.Item.DataItem == null) 
       return; 
      LinkButton btn = (LinkButton)e.Item.FindControl("LinkButton1"); 
      btn.Attributes.Add("class", "intervalLinks"); 


     } 

Edité pour le procès:

void rptDeptList_ItemDataBound(object sender, RepeaterItemEventArgs e) 
      { 
       if (e.Item.DataItem == null) 
        return; 
       LinkButton btn = (LinkButton)e.Item.FindControl("LinkButton1"); 
       btn.Attributes.Add("class", "intervalLinks"); 
       MyLinkButton.CssClass +=" big-link"; 

      } 

code html actuel pour des liens a été indiqué ci-dessous:

<ItemTemplate> 
<div class='dtilsDropListTxt'><div class='rightArrow' ></div> 
<asp:LinkButton ID="LinkButton1" runat="server" Text=<%#DataBinder.Eval(Container.DataItem, "WORK_AREA")%> 
CssClass="intervalLinks" OnClick="LinkButton1_Click" ></asp:LinkButton> 
</div> 
</ItemTemplate> 

Quelqu'un pourrait-il aider?

Répondre

1

La méthode la plus simple consiste à créer une classe css entièrement nouvelle. Lorsque vous cliquez sur l'élément, supprimez la classe actuelle et ajoutez la nouvelle. Vous pouvez accomplir ce côté client en utilisant javascript ou jquery tout simplement, ou codebehind. Le premier vous permettra d'économiser un aller-retour.

1

Dans votre pseudo-sélecteur visité du lien, tapez les changements que vous voulez voir, comme

MyLink: visited {text-decoration: line-through;}

+0

son déjà là ..voir mon message a.intervalLinks: active {text-decoration: underline; taille de police: grande; – SmartestVEGA

+0

voir ceci: a.intervalLinks: visited {text-decoration: underline; } – SmartestVEGA

+0

de plus, j'ai besoin du changement quand je clique .. qui est le plus concerné ici – SmartestVEGA

1

Vous avez quelques erreurs dans votre code derrière. Tout d'abord, MyLinkButton.CssClass += " big-link" était un exemple. Dans votre code, vous n'avez pas de bouton appelé MyLinkButton. Au lieu de cela, vous devriez utiliser btn.CssClass += " big-link", comme btn est le bouton que vous avez affaire.

Deuxièmement, votre code attachera la classe big-link à tous les boutons de lien, puisque vous n'avez pas de conditionnel qui vérifie quel bouton a réellement besoin de la nouvelle classe. Lorsque le bouton de liaison est enfoncé, vous devez stocker un Enum ou quelque chose de similaire dans ViewState, afin que dans l'événement DataBound du répéteur, vous puissiez déterminer quel bouton de lien doit avoir la classe big-link attachée à ce dernier.