2010-05-30 8 views
0

J'ai un répéteur qui est censé créer des balises div avec leurs fonctions onclick de databind. Ce qui est commeasp.net repeater renvoie html bizarre

onclick='<%# "functionname('" + Eval("somestring") +"');" %>' 

mais les guillemets simples 'après les fonc js (et avant), ils deviennent quelque chose comme?, = ..

Je ne comprends pas ce qui se passe. .. le code complet est ci-dessous

<div id="dvPager"> 
    <asp:Repeater ID="pagerSorular" runat="server"> 
    <ItemTemplate> 
    <div class='<%# "pageritem pagertext" + ((this.PageNumber == int.Parse(Container.DataItem.ToString())) ? " pagerselected" : "") %>' 
      onclick='<%# "gotopage('" + this.PageName + "', " + Container.DataItem + ");" %>'> 
     <%# Container.DataItem %> 
    </div> 
    </ItemTemplate> 
    </asp:Repeater> 
</div> 

et codebehind est:

public int PageNumber 
{ 
    get 
    { 
     string strPgNum = Request.QueryString["pg"] as String; 
     if (!String.IsNullOrEmpty(strPgNum)) 
     { 
      int pgnum; 
      if (int.TryParse(strPgNum, out pgnum)) 
      { 
       if (pgnum <= 0) 
       { 
        return pgnum; 
       } 
       else 
       { 
        return 1; 
       } 
      } 
      else 
      { 
       return 1; 
      } 
     } 
     else 
     { 
      return 1; 
     } 
    } 

} 
public string PageName { 
    get 
    { 
     string url = Request.Url.ToString(); 
     string[] parts = url.Split(new char[]{'/'}); 
     return parts[parts.Length - 1]; 
    } 
} 
public void Doldur(List<SoruGridView> sorulistesi) 
{ 
    gridSorular.DataSource = sorulistesi; 
    gridSorular.DataBind(); 
    /// 
    PagerYap(sorulistesi); 
} 

protected void PagerYap(List<SoruGridView> sorulistesi) 
{ 
    List<int> numpgs = new List<int>(); int count = 1; 
    foreach (SoruGridView sgv in sorulistesi) 
    { 
     numpgs.Add(count); 
     count++; 
    } 
    pagerSorular.DataSource = numpgs.ToArray(); 
    pagerSorular.DataBind(); 

} 

Répondre

1

Vous devrez en code HTML de vos apostrophes après "functionname (", comme dans cette question SO:

Triple Quotes? How do I delimit a databound Javascript string parameter in ASP.NET?

on dirait que vous pouvez simplifier votre code un peu comme résultat aussi:

onclick='functionname(&#39;<%# Eval("somestring")%>&#39);' 

Apparemment beaucoup plus méchant, cependant, désolé que vous ne pouvez pas aider.

+0

qui a été fait beaucoup simplifié à cause de la question ... merci pour les ampersends difficiles, m'a sauvé une recherche google pour cela :) – emre

+0

Vous ne pouvez pas me dire ce que vous avez tapé dans la boîte de recherche pour trouver cette question qui a été posée avant difficile .. qui aidera vraiment à l'avenir – emre

+0

J'ai reconnu qu'il n'échappait pas vos citations correctement (I suis surpris que ASP.Net ne vous donne pas une erreur HTML invalide ou quelque chose ing, en fait), ainsi entré "citations d'échappement asp.net databind" dans google. Codage heureux! –

Questions connexes