【问题标题】:Value returned by DataBinder.Eval is being interpreted as a variable instead of a stringDataBinder.Eval 返回的值被解释为变量而不是字符串
【发布时间】:2014-09-25 14:23:49
【问题描述】:

我正在使用 devExpress 来显示网格。列中还有一个链接,因此,单击时会显示一个弹出窗口。由于网格上有很多用户,我希望 kendo 中的弹出窗口将用户名显示为 title 的一部分。

这里是负责显示弹出窗口的方法。

function EditContactProduct(contactId, fullName) {
 /...
}

在 devExpress 上,我有以下 murkups:

<a href="#" onclick="EditContactProduct(
  <%# HttpUtility.UrlEncode(DataBinder.Eval(Container,
  "DataItem.vendorProfileUserId").ToString()) %>, 
  <%# HttpUtility.UrlEncode(DataBinder.Eval(Container,
  "DataItem.vendorProfileUserId").ToString()) %>)">
 Products
</a>

当我查看 Chrome 开发者工具时,我收到以下错误:Uncaught ReferenceError: Stuart is not defined.

使用以下标记:&lt;a href="#" onclick="EditContactProduct(17159, Stuart)"&gt;Products&lt;/a&gt;

看起来在页面中,值不是字符串而是变量。我如何使它成为一个字符串?我尝试添加引号,但这些引号也出现在输出中,创建了不同类型的错误:未捕获的语法错误:unexpected token ILLEGAL

知道如何将此值输出为字符串吗?

感谢您的帮助

【问题讨论】:

    标签: javascript asp.net webforms devexpress


    【解决方案1】:

    你必须将你的字符串包装成配额:

    <a href="#" onclick="EditContactProduct(
      <%# HttpUtility.UrlEncode(DataBinder.Eval(Container,
      "DataItem.vendorProfileUserId").ToString()) %>,' 
      <%# HttpUtility.UrlEncode(DataBinder.Eval(Container,
      "DataItem.vendorProfileUserId").ToString()) %>')">
     Products
    </a>
    

    你的代码:

    <a href="#" onclick="EditContactProduct(17159, Stuart)">Products</a>
    

    正确的代码

    <a href="#" onclick="EditContactProduct(17159, 'Stuart')">Products</a>
    

    【讨论】:

    • 一个小错误就这么多。由于所有的服务器端代码,我忽略了它仍然是 html/JavaScript 的事实。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多