Ретранслятор asp.net возвращает странный HTML - PullRequest
0 голосов
/ 30 мая 2010

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

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

}

Ответы [ 2 ]

1 голос
/ 30 мая 2010

Вам нужно будет html-кодировать ваши одинарные кавычки после "имя_функции" (как в этом вопросе SO:

Тройные кавычки? Как разделить строковый параметр Javascript с привязкой к данным в ASP.NET?

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

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

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

0 голосов
/ 30 мая 2010

Я действительно нашел свой ответ на переполнение стека:

Тройные кавычки? Как разделить строковый параметр Javascript с привязкой к данным в ASP.NET?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...