2010-05-30 3 views
0

У меня есть ретранслятор, который должен создавать теги div с их функциями onclick из databind. Что, какasp.net повторитель возвращает weird html

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

но одиночные кавычки 'после Js FUNC (и раньше), они стали чем-то вроде? = ..

Я не понимаю, что происходит. .. полный код ниже

<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> 

и отделенного кода является:

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(); 

} 

ответ

1

Вам придется HTML-кодировать одинарные кавычки после "FunctionName (", так как в этом вопросе SO:

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

Похоже, вы можете упростить ваш код немного, как следствие, тоже:

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

Выглядит гораздо более противно, хотя, извините, что это не поможет.

+0

, что было на самом деле намного упрощены для вопроса ... спасибо за ampersends жесткие, спас меня поиск Google для этого :) – emre

+0

Вы не можете сказать мне, что вы набрали в поле поиска, чтобы найти этот вопрос, который был задан до жесткого. Это действительно поможет в будущем. – emre

+0

Я узнал, что он не ускользал от ваших котировок должным образом (I «Удивительно, что ASP.Net не выдал вам неверную ошибку HTML или что-то , на самом деле), поэтому введенные «asp.net databind escape quotes» в google. Счастливое кодирование! –

Смежные вопросы