你能告诉我这个代码有什么问题吗?快要疯了!!!
<asp:LinkButton ID="LinkButton1" OnClick="DivAc('griddiv')" Font-Size="Smaller" runat="server" CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>
错误:字符文字中的字符过多...... :(
答案 0 :(得分: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>
答案 1 :(得分:13)
当前的问题是您在字符引号中放置了字符串(griddiv)(单引号,在C#中,仅适用于单个字符)。您需要编写类似OnClick="DivAc(\"griddiv\")"
BUT
OnClick是一个服务器端事件处理程序,它接受带有(object,EventArgs)并返回void的公共或受保护函数的名称。所以无论如何这都不会编译。
DivAc在哪里?在JavaScript?如果是这样,你想要OnClientClick,在这种情况下你可以保留单引号和双引号。
答案 2 :(得分:0)
我认为你的错误就在这里:
CommandName='<%# Eval("harf").ToString().ToUpper()%>'><%# Eval("harf").ToString().ToUpper() %></asp:LinkButton>
我认为它应该是:
CommandName='<%# Eval("harf").ToString().ToUpper()%'></asp:LinkButton>