【问题标题】:Eval Check String Null or Emptyeval 检查字符串 Null 或 Empty
【发布时间】:2016-02-19 22:51:59
【问题描述】:
<asp:TemplateField HeaderText="Customer Account Name">
     <ItemTemplate>
         <asp:Label ID="lblRecieverClientAccountName" runat="server" 
              Text='<%#Eval("RecieverClientAccountName").ToString()) ? 
               String.Empty : 'Invalid Account number'
               ,"RecieverClientAccountName" %>'></asp:Label>
     </ItemTemplate>
</asp:TemplateField>

我需要检查字符串是否为空并显示一条自定义消息。它给我一个错误“服务器标签格式不正确。”

【问题讨论】:

  • 问题是 .ToString()。您应该在 .ToString() 函数之前检查它。
  • 那不是合法的C#,这是什么字符'Invalid Account number'?

标签: asp.net c#-4.0 gridview


【解决方案1】:

问题是.ToString()。你应该在.ToString()函数之前检查它

尝试如下

<asp:Label ID="lblRecieverClientAccountName" runat="server" 
          Text='<%#Eval("RecieverClientAccountName")) ? 
           String.Empty : 'Invalid Account number'
           ,"RecieverClientAccountName" %>'></asp:Label>

或检查null 值。

<asp:Label ID="lblRecieverClientAccountName" runat="server" 
          Text='<%#Eval("RecieverClientAccountName"))==
          null : 'Invalid Account number'
           ,"RecieverClientAccountName" %>'></asp:Label>

我还没测试过。

编辑 1

试试这个

<%#(String.IsNullOrEmpty(Eval("RecieverClientAccountName").ToString()) ?...

关于 SO Using '<%# Eval("item") %>'; Handling Null Value and showing 0 against 的类似问题

【讨论】:

    【解决方案2】:

    试试这个..

    <asp:Label ID="lblRecieverClientAccountName" runat="server" 
               Text='<%#Eval("RecieverClientAccountName")) ?
               "" : 'Invalid Account number'
               ,"RecieverClientAccountName" %>'></asp:Label>
    

    【讨论】:

      【解决方案3】:
      <asp:TemplateField HeaderText="Customer Account Name">
       <ItemTemplate>
           <asp:Label ID="lblRecieverClientAccountName" runat="server" 
                Text='<%#Eval("RecieverClientAccountName") ? 
                 String.Empty : 'Invalid Account number, ' +
                 Eval("RecieverClientAccountName") %>'></asp:Label>
       </ItemTemplate>
      

      【讨论】:

        【解决方案4】:

        您遇到了错误:“服务器代码格式不正确。”因为:

        'Invalid Account number'
        

        您必须将其更改为:

        "Invalid Account number"
        

        你可以像这样使用 Eval 函数:

        Eval("RecieverClientAccountName") == null ? "" : Eval("RecieverClientAccountName").ToString()
        

        Eval("RecieverClientAccountName") == DBNull.Value ? "" : Eval("RecieverClientAccountName").ToString()
        

        【讨论】:

          【解决方案5】:

          检查 Eval 值 Null 或 Not Null

          <%# string.IsNullOrEmpty(Eval("RecieverClientAccountName").ToString())?  "Null" : "Values" %>
          

          【讨论】:

          • 如果 Eval("ReceiverClientAccountName") 为空,则在 .ToString() 处发生异常。
          • string.IsNullOrEmpty(Eval("RecieverClientAccountName").ToString()) 我在这里检查值是空还是非空,并且不可能发生错误
          猜你喜欢
          • 2019-03-20
          • 2023-01-28
          • 1970-01-01
          • 2013-03-26
          • 1970-01-01
          • 2012-01-29
          • 2015-01-21
          • 1970-01-01
          • 2013-01-29
          相关资源
          最近更新 更多