将Eval保存为bool,无需代码

时间:2014-05-08 12:16:00

标签: c# asp.net

我只需要在页面的前端有一个变量。我正在努力实现这样的目标:

<% bool YesNo = Eval("isParent") == "True" ? true : false  %> 

数据绑定不允许我这样做

有没有人知道解决这个问题?

感谢您的所有答案,我没有尝试查找bool值,而是将If返回为文本true或false并且绕过它。(使用控件属性和css类)

我的解决方案

 Visible='<%#(string)Eval("isParent") == "True"  ? false : true %>'

 class="<%#(string)Eval("isParent") == "True"  ? "LegendHeader" : "" %>"

我这样做的原因是因为数据绑定到特定字段,正如Vladimir Sachek所提到的,如果你按照我想要的方式进行操作,则必须循环数据并相应地设置变量< / p>

4 个答案:

答案 0 :(得分:0)

var YesNo = <%= Eval("isParent").ToString() %> == "True" 

答案 1 :(得分:0)

尝试类似

的内容
<% bool YesNo(Eval("isParent").toString())  %> 

YesNo是代码隐藏的方法。喜欢以下

public bool YesNo(string sIsParent)
{
    if(sIsParent.equals("1")){ return true; } else { return false; }
}

答案 2 :(得分:0)

杰克说:

  

它给了我错误数据绑定方法,如Eval(),XPath()和   Bind()只能在数据绑定控件的上下文中使用。

您只能在Repeater,GridView和类似控件中使用Eval。这是因为Eval 使用当前数据项来检索请求的属性(&#39; IsParent&#39;)

答案 3 :(得分:0)

使用 DataBinder.Eval ,并指定您从中获取数据的模型

<% bool YesNo = DataBinder.Eval(new{isParent = "True"}, "isParent") == "True" ? true : false; %> 
<%= YesNo %>