2010-05-30 63 views
0

我有一個轉發器,應該創建div標籤與他們的onclick函數從數據綁定。這就好比asp.net轉發器返回怪異的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

您將有 「使用functionName(」 後HTML編碼的單引號,因爲在這太問題:

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

貌似可以簡化您的代碼位結果,也:

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

看起來更討厭,但抱歉,不能幫助。

+0

這實際上是很多簡化問題的緣故...感謝強硬的ampersends,救了我的谷歌搜索因爲:) – emre 2010-05-30 18:39:18

+0

你不能告訴我你在搜索框中鍵入了什麼,以找到這個問題之前已經問過困難..這將在未來確實有幫助 – emre 2010-05-30 18:47:41

+0

我認識到,它不是正確地逃脫你的報價(我驚訝的ASP.Net並沒有給你一個無效的HTML錯誤或一些ing,實際上),所以進入「asp.net databind escape quotes」進入谷歌。快樂的編碼! – 2010-05-30 18:50:24