gpt4 book ai didi

c# - ASP.NET 在 If 语句的 .aspx 中使用 Bind/Eval

转载 作者:IT王子 更新时间:2023-10-29 04:45:50 31 4
gpt4 key购买 nike

在我的 .aspx 中,我希望根据来自绑定(bind)的值添加一个 If 语句。我尝试了以下方法:

<% if(bool.Parse(Eval("IsLinkable") as string)){ %>                    
monkeys!!!!!!
(please be aware there will be no monkeys,
this is only for humour purposes)
<%} %>

IsLinkable 是来自 Binder 的 bool 值。我收到以下错误:

InvalidOperationException
Databinding methods such as Eval(), XPath(), and Bind() can only
be used in the context of a databound control.

最佳答案

您需要将您的逻辑添加到 ItemDataBound ListView 的事件。在 aspx 中,您不能在 DataBinder 的上下文中使用 if 语句:<%# if() %>不起作用。

看看这里:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemdatabound.aspx

将为将绑定(bind)到您的 ListView 的每个项目引发该事件,因此事件中的上下文与该项目相关。

例子,看看你能不能根据自己的情况调整:

protected void ListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
Label monkeyLabel = (Label)e.Item.FindControl("monkeyLabel");
bool linkable = (bool)DataBinder.Eval(e.Item.DataItem, "IsLinkable");
if (linkable)
monkeyLabel.Text = "monkeys!!!!!! (please be aware there will be no monkeys, this is only for humour purposes)";
}
}

关于c# - ASP.NET 在 If 语句的 .aspx 中使用 Bind/Eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596484/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com