请注意,我使用SQLDATASOURCE
来执行SELECT * FROM myTable
。这是我的中继器项目模板的一小部分:
<li>Work Extension: <%# Eval("WK_PHONE_EXT")%></li>
现在,假设<%# Eval("WK_PHONE_EXT")%>
是一个空字符串。如何在<%# Eval("WK_PHONE_EXT")%>
代码中引用<script language="c#" runat="server">
。我知道我可以从代码隐藏中做到这一点,方法是将EVAL
标记的值放在asp:label
文本属性中然后找到它。我只想找一个更短的说法:
if(<%# Eval("WK_PHONE_EXT")%> == ""){
<%# Eval("WK_PHONE_EXT")%> == "N/A";
}
所以我不必重建我的简单DNN模块。这样的事情可能吗?
答案 0 :(得分:1)
您可以在线查看
<%#(String.IsNullOrEmpty(Eval("WK_PHONE_EXT").ToString()) ? "N/A" : Eval("WK_PHONE_EXT"))%>
编辑:
对于复杂的条件,我更喜欢在codebehind&amp;中编写一个公共(或受保护的)方法。处理它们
在用户界面.. '<%# MyDataItem(Eval("item")) %>'
public string MyDataItem(object value)
{
if (string.IsNullOrEmpty(value.ToString()))
{
return "N/A";
}
return myValue.ToString();
}
答案 1 :(得分:1)
如果您只是使用jQuery在转发器中查找该项(或多个项目)并将其中的文本替换为“N / A”而不是尝试使用C#来做什么,该怎么办?
将您的eval代码包含在div中,并在其上添加一个类,然后使用该类
定位任何内容<div class="workPhone"><%# Eval("WK_PHONE_EXT")%></div>
然后在jquery中像
<script type="text/javascript">
if($(".workPhone").HTML() == "")
{
$(".workPhone").HTML("N/A");
}
</script>