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

时间:2015-07-10 21:38:08

标签: javascript c# .net eval

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

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

我还创建了一个简短的javascript函数来将其转换为boolean

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

我对javascript不太满意,但我已经尝试了所有我能找到的东西。不知道为什么它不适合我。这是我尝试过的:

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

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

1 个答案:

答案 0 :(得分:0)

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

此代码在服务器端执行,并转换为HTML,如

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

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