字符字面量中的字符过多?

5

请问您能告诉我这段代码哪里有问题吗?我快要疯了!!!

<asp:LinkButton ID="LinkButton1" OnClick="DivAc('griddiv')" Font-Size="Smaller"  runat="server" CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>

错误:字符字面量中的字符太多了... :(

2
您是否尝试通过文本属性替换内部文本:<asp:LinkButton ID="LinkButton1" OnClick="DivAc('griddiv')" Font-Size="Smaller" runat="server" CommandName='<%# Eval("harf").ToString().ToUpper()%>' Text='<%# Eval("harf").ToString().ToUpper() %>' />? - Steve B
顺便提一下,您不能在OnClick事件处理程序中使用通用函数。 - Yuriy Rozhovetskiy
大家好,感谢您们的快速回复,但我猜问题可能是因为这个:OnClick="DivAc('griddiv')",因为当我删除这部分时它就可以工作了? - user1005497
3个回答

16

DivAc('griddiv')是一个JavaScript函数吗? 那么您需要使用OnClientClick而不是OnClick

OnClick保留给.NET函数。使用OnClientClick生成HTML中的OnClick属性。

这可能有点令人困惑。

所以,你需要这样做:

<asp:LinkButton ID="LinkButton1" OnClientClick="DivAc('griddiv')" Font-Size="Smaller"  runat="server" CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>

谢谢 Mathieu...对不起,这是我的错 :( - user1005497

13

问题出在你将一个字符串(griddiv)放在了字符引号中(在C#中,单引号只能表示一个字符)。你需要写成类似这样的代码:OnClick="DivAc(\"griddiv\")"

但是,OnClick是一个服务器端事件处理程序,它接受一个公共或受保护函数的名称,该函数接受(object,EventArgs)并返回void。因此,无论如何都无法编译。

DivAc在哪里?在JavaScript中吗?如果是这样,您需要使用OnClientClick,这种情况下,您可以保留单引号和双引号不变。


谢谢 sq33G,Onclientclick 解决了问题... 都是我的错,抱歉占用了时间... 谢谢大家! - user1005497

0

我认为你的错误在这里:

CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>

我认为应该是这样的:

CommandName='<%# Eval("harf").ToString().ToUpper()%'></asp:LinkButton>

您的建议将导致LinkButton没有文本。 - Tim
大家好,感谢您们的快速回复,但我猜问题可能是因为这个:OnClick="DivAc('griddiv')",因为当我删除这部分时它就可以工作了? - user1005497

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接