我似乎无法弄清楚为什么这对我不起作用,三元运算符的第二个表达式并没有给我带来任何麻烦,但是第一个表达式给了我错误: 验证(ASP.Net):如果此属性值用引号括起来,则引号必须匹配。
<asp:Label
ID="CategoryText"
CssClass='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsSkipped")) ? "CategoryCell Skipped" : "CategoryCell" %>'
runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "CategoryID").Equals(CurrentCategoryID) ?
"<%# DataBinder.Eval(Container.DataItem, \"Text\").ToString() %> "
// ^-- this is what is causing the error.
: "<%# GenerateQuestionURL(DataBinder.Eval(Container.DataItem, \"CategoryID\").ToString(), DataBinder.Eval(Container.DataItem, \"Text\").ToString() ) %> " %>'
/>
答案 0 :(得分:3)
试试这个:
<asp:Label
ID="CategoryText"
CssClass='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsSkipped")) ? "CategoryCell Skipped" : "CategoryCell" %>'
runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "CategoryID").Equals(CurrentCategoryID)
? DataBinder.Eval(Container.DataItem, "Text").ToString()
: GenerateQuestionURL(DataBinder.Eval(Container.DataItem, "CategoryID").ToString(), DataBinder.Eval(Container.DataItem, "Text").ToString()) %>'
/>
虽然有点混乱(难以阅读),但我会把它放在一个函数中并从那里调用它。