当前位置: 首页 > 编程语言 > C#

ASP.NET在.aspx中使用Bind-EvalinIf语句分享

时间:2023-04-11 00:51:29 C#

ASP.NET在.aspx中使用Bind/Eval为给定值添加If语句。我试过以下方法:猴子!!!!!!(请注意不会有猴子,这只是出于幽默目的)IsLinkable是来自Binder的布尔值。我收到以下错误:InvalidOperationException数据绑定方法,例如Eval()、XPath()和Bind()只能在数据绑定控件的上下文中使用。您需要将您的逻辑添加到ListView的ItemDataBound事件。在aspx中,您不能在DataBinder的上下文中使用if语句:不起作用。看看这里:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemdatabound.aspx将为将绑定到ListView的每个项目引发一个事件,所以在事件中,上下文是项目相关的。例如,看看您是否可以根据您的情况进行调整:“猴子标签”);boollinkable=(bool)DataBinder.Eval(e.Item.DataItem,"IsLinkable");if(linkable)monkeyLabel.Text="monkeys!!!!!!(请注意不会有猴子,这只是出于幽默目的)";我很确定你可以做类似下面的事情(注意我没有方便的编译器来测试确切的语法)text=''是的,这是c#并且你使用vb.net,所以你需要对三元运算符使用vb语法。编辑-能够投入简单的数据绑定情况就像一种魅力。您可以使用asp:PlaceHolder并将eval放在Visible中。如下图'>猴子!!!!!!!(请注意不会有猴子,这只是出于幽默目的)如果您在Bazzz的回答中遇到e.Item.DataItem问题,请尝试protectedvoidListView_ItemDataBound(objectsender,ListViewItemEventArgse){using(ListViewDataItemlistViewDataItem=(ListViewDataItem)e.Item){if(listViewDataItem!=null){标签monkeyLabel=(Label)e.Item.FindControl("monkeyLabel");boollinkable=(bool)DataBinder.Eval(listViewDataItem,"IsLinkable");if(linkable)monkeyLabel.Text="monkeys!!!!!!(请注意不会有猴子,这只是出于幽默目的)";我知道这个答案今天有点晚了,但这是我需要解决的问题:天哪,这花了太长时间才弄清楚...'>Contentformula.type是链接表的一个int列。感谢您为获得我的决议所做的其他贡献。您可以创建一个方法来评估该值并返回所需的值。在后面的代码中,您可以创建类似protectedStringIsLinkableABool(StringisLinkable){if(isLinkable==Boolean.TrueString){return"monkeys!!!!!!(pleasebeaware...");}else{returnString.空;}}每当我需要处理数据绑定控件中的条件时,我都会使用OnItemDataBound事件。所以你可以这样做:"IsLinkable");if(IsLinkable){//dostuff}}我们需要查看其余代码,但错误消息给了我一些提示。你只能使用Eval。诸如中继器、数据网格等东西。如果你在数据绑定控件之外,你可以将值加载到代码隐藏的变量中并公开它。然后你可以在ASPX上使用它进行条件处理。对于FormView控件,请参见此链接。这是示例代码。我的aspx页面FormView控件如下所示:'>我正在检查我的eval("PreviousDegreeYN")==True,我想在我的标签“lblPYN”中显示Yesprotectedvoidfv_DataBound(objectsender,EventArgse){FormViewRowrow=fv.Row;//声明变量lblPYN标签lblPYN;lblPYN=(Label)row.FindControl("lblPYN");如果(lblPYN.Text=="True"){lblPYN.ForeColor=Color.Blue;lblPYN.Text="是";}else{lblPYN.ForeColor=Color.Blue;lblPYN.Text="否";}}放置条件aspx页面不是一个好主意。也很乱。您可以使用三元运算符。但我建议你使用网格视图的rowdatabound事件。第1步-转到网格视图属性。单击Lighting按钮列出所有事件。Step2-给rowdatabound起个名字,双击protectedvoidonrow(objectsender,GridViewRowEventArgse)以上都是C#学习教程分享的:ASP.NETUsingBind/Evalin.aspxinIfStatement,如果有用的话给你和你需要了解更多C#学习教程的,希望你多多关注——{if(e.Row.RowType==DataControlRowType.DataRow){TableCellstatusCell=e.Row.Cells[8];//表示第9列if(statusCell.Text=="0"){statusCell.Text="NoDocuploaded";}elseif(statusCell.Text=="1"){statusCell.Text="Pending";}elseif(statusCell.Text=="2"){statusCell.Text="已验证";}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: