我有一个转发器应该用数据绑定器的onclick函数创建div标签。这就像
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();
}
答案 0 :(得分:1)
你必须在“functionname(”之后)对你的单引号进行html编码,如同这个问题:
Triple Quotes? How do I delimit a databound Javascript string parameter in ASP.NET?
看起来你也可以简化你的代码:
onclick='functionname('<%# Eval("somestring")%>');'
看起来更令人讨厌,抱歉无法帮助。
答案 1 :(得分:0)
我实际上在Stack Overflow上找到了答案:
Triple Quotes? How do I delimit a databound Javascript string parameter in ASP.NET?