【问题标题】:Too many characters in character literal?字符文字中的字符太多?
【发布时间】:2011-10-27 07:23:15
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否尝试用文本属性替换内部文本:&lt;asp:LinkButton ID="LinkButton1" OnClick="DivAc('griddiv')" Font-Size="Smaller" runat="server" CommandName='&lt;%# Eval("harf").ToString().ToUpper()%&gt;' Text='&lt;%# Eval("harf").ToString().ToUpper() %&gt;' /&gt;
  • 顺便说一句,您不能对 OnClick 事件处理程序使用通用函数。
  • 大家好,感谢您的快速回复,但我想,问题是因为这个: OnClick="DivAc('griddiv')" 因为当我删除这部分时它可以工作???.. .

标签: asp.net character literals


【解决方案1】:

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... 抱歉这是我的错 :(
【解决方案2】:

直接的问题是您将 string (griddiv) 放在 character 引号中(在 C# 中,单引号仅用于单个字符)。你需要写类似OnClick="DivAc(\"griddiv\")"

但是

OnClick 是一个服务器端事件处理程序,它采用公共或受保护函数的名称,该函数采用 (object,EventArgs) 并返回 void。所以这无论如何都不会编译。

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

【讨论】:

  • 感谢 sq33G Onclientclick 解决问题...都是我的错对不起占用...谢谢大家!
【解决方案3】:

我认为你的错误在这里:

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

我认为应该是:

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

【讨论】:

  • 您的建议将导致 LinkBut​​ton 没有文本。
  • 大家好,感谢您的快速回复,但我想,问题是因为这个: OnClick="DivAc('griddiv')" 因为当我删除这部分时它可以工作???.. .
猜你喜欢
  • 1970-01-01
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多