Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 12
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    ASP.NET C# Làm sao để không cho phép chuỗi chỉ toàn kí tự space (khoảng trống)

    Chào các bạn, mình đang gặp một số vấn đề không biết có nhỏ không nhưng mà mình ngồi cả ngày hôm nay vẫn không tìm được hướng giải quyết.
    Tình hình là mình có 1 FreeTextBox Control trong trang aspx.
    Khi client nhập string vào FreeTextBox, nhấn submit, nếu string đó chỉ toàn kí tự khoảng trống (khi nhấn space rồi giữ liên tục) thì sẽ báo ErrorMessage.

    Mình hay dùng RequiredFieldValidator cho Textbox control và rất ổn: ErrorMessage thông báo khi Textbox empty hoặc chỉ có kí tự space.
    Nhưng nay mình dùng cho FreeTextBox control thì lại gặp vấn đề: ErrorMessage chỉ hiện khi FreeTextBox empty, còn khi mình nhấn phím space space space.... thì ErrorMessage không báo nữa và nội dung của FreeTextBox được lưu vào CSDL [IMG]images/smilies/11.gif[/IMG]

    cụ thể code của mình:

    Mã:
     <FTB:FreeTextBox id="NOI_DUNG" runat="server" />
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Display="None" runat="server" ControlToValidate="NOI_DUNG" CssErrorMessage="Bạn phải nhập nội dung" </asp:RequiredFieldValidator>
    Mình loay hay cả ngày không biết phải làm sao, nên giờ mình đành chuyển sang kiểm tra ở trong code C# vậy.

    Các bạn cho mình hỏi, mình dùng lệnh gì để kiểm tra nếu chuỗi chỉ toàn khoảng trống vậy???

    Mã:
    public void Insert()
    {
    if(NOIDUNG.Text=???)
    {
        LabelError.Text="Nội dung không hợp lệ";
    }
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn tìm hiểu tài liệu về freetextbox xem ? Nếu ko thể đc thì có thể dùng jvascript để kiểm tra phía client ( mấy cái Control Asp.Net muốn javascript cũng hơi mệt à nha [IMG]images/smilies/laughing.gif[/IMG] )

    Còn như kiểm tra phía Server thì dùng
    !String.IsNullOrWhiteSpace(NOIDUNG.Text)
    hoặc
    NOIDUNG.Text!=null && NOIDUNG.Text.Trim().Length>0

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Sounj
    Bạn tìm hiểu tài liệu về freetextbox xem ? Nếu ko thể đc thì có thể dùng jvascript để kiểm tra phía client ( mấy cái Control Asp.Net muốn javascript cũng hơi mệt à nha [IMG]images/smilies/laughing.gif[/IMG] )

    Còn như kiểm tra phía Server thì dùng
    !String.IsNullOrWhiteSpace(NOIDUNG.Text)
    hoặc
    NOIDUNG.Text!=null && NOIDUNG.Text.Trim().Length>0
    Tài liệu về FreeTextBox cũng khá nhiều nhưng về vấn đề này thì hiếm lắm. Có 1 số người bảo là do cái Freetextbox là bên sản phẩm thứ 3 (third-party) nên có lẽ bị vậy.

    Lúc đầu mình có dùng thử if(!String.IsNullOrWhiteSpace(NOIDUNG.Text)) nhưng nó vẫn lọt vào vòng if mặc dù toàn là kí tự khoảng trắng thôi.

    Để mình thử dòng NOIDUNG.Text!=null && NOIDUNG.Text.Trim().Length>0.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Sounj
    Bạn tìm hiểu tài liệu về freetextbox xem ? Nếu ko thể đc thì có thể dùng jvascript để kiểm tra phía client ( mấy cái Control Asp.Net muốn javascript cũng hơi mệt à nha [IMG]images/smilies/laughing.gif[/IMG] )

    Còn như kiểm tra phía Server thì dùng
    !String.IsNullOrWhiteSpace(NOIDUNG.Text)
    hoặc
    NOIDUNG.Text!=null && NOIDUNG.Text.Trim().Length>0
    Vẫn không được bạn ơi, khi mình debug thì NOIDUNG.Text= " "

    Và thế là được ghi vào CSDL

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi vyclarks
    Vẫn không được bạn ơi, khi mình debug thì NOIDUNG.Text= " "

    Và thế là được ghi vào CSDL
    Ặc, bạn là lập trình viên chứ có phải người dùng mù IT đâu ? gặp vấn đề thì tự viết hàm giải quyết đi chứ ? dùng Regular Expressions hoặc xử lý chuỗi thiếu gì cách. Ở trên là đúng ko, vậy thì thử thế này đi
    string testString= NOIDUNG.Text.Replace("&nbsp", " ");
    rồi dùng IsNullOrWhiteSpace để kiểm tra testString

    "Chuỗi trắng" ở cái dạng " " thì RequiredFieldValidator ko báo lỗi là đúng rồi còn gì ? Thứ bị RequiredFieldValidator báo lỗi là chuỗi toàn ký tự trống, " " trống ở đâu chứ ?

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Sounj
    Ặc, bạn là lập trình viên chứ có phải người dùng mù IT đâu ? gặp vấn đề thì tự viết hàm giải quyết đi chứ ? dùng Regular Expressions hoặc xử lý chuỗi thiếu gì cách. Ở trên là đúng ko, vậy thì thử thế này đi
    string testString= NOIDUNG.Text.Replace("&nbsp", " ");
    rồi dùng IsNullOrWhiteSpace để kiểm tra testString

    "Chuỗi trắng" ở cái dạng " " thì RequiredFieldValidator ko báo lỗi là đúng rồi còn gì ? Thứ bị RequiredFieldValidator báo lỗi là chuỗi toàn ký tự trống, " " trống ở đâu chứ ?
    hic, bạn thông cảm, mình ngồi trước cái máy từ sáng và đến giờ này thì ko còn mở mắt đc nữa và mới debug phát hiện thì ra kí tự space chuyển thành &nbsp nên buộc miệng hỏi luôn (căn bản là do oải nên lười). Thôi đóng máy ngày mai tỉnh táo rồi giải quyết [IMG]images/smilies/daydreaming.gif[/IMG]

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có thể dùng các hàm HttpUtility.HtmlDecode, Server.HtmlDecode, hay WebUtility.HtmlDecode để convert HTML entities.

    Mã:
    string str = WebUtility.HtmlDecode("  & &copy;");

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Lỡ mình đánh 1 khoảng trắng, và sau đó mình chọn bôi đậm cho dấu cách đó [IMG]images/smilies/applause.gif[/IMG][IMG]images/smilies/2.gif[/IMG]


  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn thử bắt sự kiện Key Press khi bạn ấn vào nut Space thì bỏ qua, kiểu như thế xem

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn xem thử cái này:

    Mã:
    if(!FTB.Text.ToString().Equals(""))
    {
     // Freetextbox không có null hay khoảng trắng
    }

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •