asp.net
  • inline-code
  • 2011-10-05 13 views 6 likes 
    6

    Tôi đang cố đặt dấu * bên cạnh tên dựa trên điều kiện.Ghép nối hai hoặc nhiều chuỗi trong mã nội tuyến ASP.NET

    Mã của tôi:

    <asp:Label ID="lblOne" runat="server" Text= '<%# Eval("name") + ((Eval("StatusId").Equals(0) && Eval("assignfilename") == null) ? " *" : "") %>' > </asp:Label> 
    

    Cảm ơn

    BB

    +0

    Đầu ra hoặc lỗi bạn đang thấy là gì? –

    Trả lời

    3

    Nếu bạn đang đẩy các giới hạn của những gì bạn có thể dễ dàng xử lý với mã nội tuyến, bạn luôn có thể viết một hàm để thay thế. Sau đó, bạn có thể làm điều gì đó như:

    <asp:Label ID="lblOne" runat="server" Text= '<%# EmitSomeText(Eval("name"), Eval("StatusId"), Eval("assignfilename")) %>' /> 
    

    này cho phép bạn phá vỡ một biểu thức phức tạp thành tuy nhiên nhiều dòng nó cần phải được, có thể là một chút ít lúng túng. Bạn có thể sử dụng một hàm trong CodeBehind của bạn hoặc bất kỳ lớp nào khác.

    Nếu bạn đang ràng buộc để một lớp học mà bạn có thể truy cập, bạn có thể thêm một tài sản chỉ đọc. Sau đó, bạn có thể làm một cái gì đó như Eval ("MyNewProperty").

    tôi sử dụng mà cho phơi bày định dạng mà tôi cần để tái sử dụng. Ví dụ, Customer.CustomerFullName có thể trả về tên cuối cùng được phân tách lần đầu là dấu phẩy (các tình huống xử lý thông minh trong đó một hoặc cái kia hoặc cả hai đều bị thiếu) cộng với tiêu đề tùy chọn, vì có thể khách hàng của tôi là những người y tế và một số người có bằng tiến sĩ và MD.

    3

    Đối với kịch bản một lần đơn giản mã-đằng sau chức năng công trình okay.

    Bạn cũng có thể muốn xem xét việc mã hóa chúng như là một tài sản trong đối tượng tiềm ẩn.

    Ví dụ, nếu văn bản được tạo ra sẽ được sử dụng tại hơn một trường hợp, bạn cần phải viết mã chức năng với evals nhiều lần trong các hình thức hoặc điều khiển khác nhau.

    Tôi sẽ tạo thuộc tính trên đối tượng dữ liệu, ví dụ: NameWithStatusStar, sau đó nhãn của bạn có thể được gắn trực tiếp vào thuộc tính với mã bên trong Eval ("NameWithStatusStar")

    Điều này mang tính mô tả và tái sử dụng hơn một loạt các biểu thức, dễ thay đổi hơn (ví dụ: thêm trường khác, thay đổi công thức, v.v.)

    4

    Tôi không thực sự quen thuộc với mã nội tuyến và mã của bạn có vẻ hơi phức tạp. Nhưng tôi cũng cần ghép nối một đánh giá ("bản ghi") và một văn bản. Vì vậy, để trả lời câu hỏi về cách nối, ký hiệu và làm việc cho tôi.

    '<%# Eval("name") & " *" %>' 
    

    hy vọng điều này sẽ giúp mọi người.

    2

    Bạn có thể làm điều đó như thế này:

    Text='<%#"CustomText "+Eval("Name")%>' 
    
    +0

    Sẽ hữu ích hơn nếu bạn cung cấp ngữ cảnh nhiều hơn một chút. – gpgekko

    -1
    Text='<%# string.Concat(Eval("FirstName"), " ", Eval("LastName"))%>' 
    

    này đã làm việc cho tôi trong dự án của tôi. Tìm thấy nó ở đây:

    Concatenate text with Eval

    +4

    Vui lòng không đăng câu trả lời giống hệt nhau cho nhiều câu hỏi. Đăng một câu trả lời hay, sau đó bỏ phiếu/gắn cờ để đóng các câu hỏi khác dưới dạng bản sao. Nếu câu hỏi không trùng lặp, hãy * điều chỉnh câu trả lời của bạn cho câu hỏi. * –

    1
    Text='<%#String.Concat(Eval("UserId"), Eval("Username")) %>' 
    

    này đã làm việc cho tôi trong dự án của tôi.Tìm thấy tại đây:

    Concatenate text with Eval

     Các vấn đề liên quan

    • Không có vấn đề liên quan^_^