<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}", Eval("CatalogID"), Eval("ProductID"))%>
我要做的是:
NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}",Eval("CatalogID"), (Eval("CatalogID")=="856" ? Eval("ProductID") : Eval("CustItem")))%>
我正在尝试链接到页面中的项目..我已经为除了catalogid 856中的项目之外的每个项目完成了此操作... url看起来像:storefront.aspx?CatalogID = 856&amp; ProductID = AVE05418那个例子是目录856中的一个,问题是,在url中传递的productid实际上是一个名为CustItem的变量所以我试图在目录为856时在ProductID的位置传递CustItem
谢谢
答案 0 :(得分:6)
您可以尝试这样的事情:
Eval("CatalogID") == 856 ? Eval("CustItem") : Eval("ProductID")
修改强>
NavigateUrl='<%#String.Format("~/storefront.aspx?CatalogID={0}&ProductID={1}",Eval("CatalogID"), (Eval("CatalogID").ToString() == "856" ? Eval("CustItem") : Eval("ProductID")))%>'
答案 1 :(得分:3)
您可以使用ternary operator。
Eval((CatalogID==856) ? "CustItem" : "ProductID")
比这更好的方法是修复已经进入数据库的不良数据,这样你就可以避免这种丑陋。
答案 2 :(得分:1)
任何人都可以建议如何处理给定的情况吗?
我会在数据库层修复它。数据完全错误。
如果您不得不破解它,请不要更改服务器外部可见的任何内容(例如Web服务接口或URL)。否则,有人可以利用您的解决方法来破坏您的数据。
在您的网址中允许Eval
只是为了解决问题。