如何将Eval()传递给Javascript函数

本文关键字:Javascript 函数 Eval | 更新日期: 2023-09-27 18:02:14

对于熟悉Javascript的人来说,这可能非常简单,但在传递eval作为参数时,我在调用函数时遇到了问题。我有一堆我正在尝试创建的动态复选框。我的文本显示得很好,但复选框给我带来了麻烦。问题是,我传递给复选框的值是一个字符串("true"或"false"(,而不是bool。

<asp:CheckBox runat="server" AutoPostBack="True" Checked='<%# Eval("Value") %>' Text='<%# Eval("DisplayName") %>'></asp:CheckBox>

我还创建了一个简短的javascript函数,将其转换为布尔

function ConvertToBoolean(value)
{
     if (value == "true")
     {    return true;}
     if (value == "false")
     {    return false;}
 }

我不擅长javascript,但我已经尝试了在SO上找到的所有东西。不确定为什么它对我不起作用。以下是我尝试过的:

Checked='<%# Eval("Value") %>'
Checked="'<%# Eval("Value") %>'"
Checked='<%# "ConvertToBoolean(" + Eval("Value") + ");" %>'
Checked='<%# "ConvertToBoolean('"" + Eval("Value") + "'");" %>'
Checked='<%# Eval("Value", "javascript:ConvertToBoolean({0});") %>'
Checked="ConvertToBoolean('<%# Eval("Value") %>')"

我是不是误解了一些基本的东西?有办法做到这一点吗?

如何将Eval()传递给Javascript函数

<asp:CheckBox runat="server" AutoPostBack="True" Checked='<%# Eval("Value")=="true" %>' Text='<%# Eval("DisplayName") %>' />

这段代码在服务器端执行,并被翻译成HTML,类似

<input type="checkbox" checked="checked"> .....

当然,ASP需要评估您的Eval("Value")=="true",以决定是否需要输出checked