字符文字中的字符太多了?

时间:2011-10-27 07:23:15

标签: asp.net character literals

你能告诉我这个代码有什么问题吗?快要疯了!!!

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

错误:字符文字中的字符过多...... :(

3 个答案:

答案 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>