asp.net
  • eval
  • 2012-10-25 4 views 0 likes 
    0

    질문 목록이있는 테이블이 있습니다. 속성 중 하나는 largeText입니다.
    NULL 수단
    TRUE 수단이
    FALSE 의미 여러 줄의 텍스트 상자를 표시 한 줄의 텍스트 상자를 표시 텍스트 상자를 숨 깁니다.ASP.Net의 텍스트 상자의 TextMode 속성에 nullable 비트 필드를 바인딩합니다.

    는 여기에 내가

    <asp:TextBox ID="tbxFreeResponse" runat="server" 
          Visible='<%# Eval("largeText") != null %>' 
          TextMode = '<%# (Eval("largeText") == (object)true) ? 
               TextBoxMode.SingleLine : 
               TextBoxMode.MultiLine%>'/> 
    

    Eval("largeText") == (object)true 항상 생각 FALSE로 평가하는 것을 시도하고있는 무슨이다. 내가 뭘 놓치고 있니? (object) 캐스트가 필요합니다. 그렇지 않으면 형식이 호환되지 않기 때문입니다.

    +0

    'Eval ("largeText")를 부울로 캐스팅하고 표현식에서이를 평가 해 보았습니까? 물론 null 인 경우 예외가 발생하므로 처리해야합니다. –

    +0

    'bool'과'bool? '을 시도했지만 예외가 있습니다. 코드 숨김으로이 작업을 수행 할 수 있음을 알고 있지만 여기에 해결책이있는 것 같습니다. – PBG

    답변

    0

    여기 나를 위해 트릭을했는데, 잘하면 누군가 유용 할 것입니다.

    <asp:TextBox ID="tbxFreeResponse" runat="server" 
          Visible='<%# Eval("largeText") != null %>' 
          TextMode = '<%# (!(Eval("largeText") is DBNull) && (bool)Eval("largeText")) ? 
              TextBoxMode.MultiLine : 
              TextBoxMode.SingleLine%>'/> 
    
    관련 문제