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

Value returned by DataBinder.Eval is being interpreted as a variable instead of a string

本文关键字:变量 字符串 解释 返回 Eval DataBinder      更新时间:2023-09-26

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

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

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开发工具时,我会得到以下错误:未捕获引用错误:Stuart未定义

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

在页面中,值不是字符串,而是一个变量。我怎样把它做成一根绳子?我试图添加引号,但这些引号也出现在输出中,造成了不同类型的错误:未捕获语法错误:意外标记ILLEGAL

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

感谢您对的帮助

您必须将字符串封装到配额中:

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