DataBinder.Eval返回的值被解释为变量而不是字符串

时间:2014-09-25 14:23:50

标签: javascript asp.net webforms devexpress

我正在使用 devExpress 来显示网格。列中还有一个链接,以便在单击时显示弹出窗口。由于网格上有很多用户,我希望弹出窗口( kendo )在标题中显示用户名。

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

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

在devExpress上,我有以下的murkup:

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

当我查看Chrome开发者工具时,我收到以下错误:未捕获的ReferenceError:Stuart未定义。

使用以下标记:<a href="#" onclick="EditContactProduct(17159, Stuart)">Products</a>

在页面中看起来,值不是字符串而是变量。我怎么把它变成一个字符串?我试图添加引号,但这些引号也会出现在输出中,从而产生不同类型的错误:未捕获的语法错误:意外的令牌ILLEGAL

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

感谢帮助

1 个答案:

答案 0 :(得分:2)

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

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