• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Sự khác nhau giữa <%# và <%= trong asp.net

Các bài viết giới thiệu và hướng dẫn dành cho lập trình Web Forms

Điều hành viên: vietluyen

neverland87
Guru
Guru
Bài viết: 490
Ngày tham gia: T.Bảy 26/05/2007 4:31 pm
Been thanked: 8 time

Sự khác nhau giữa <%# và <%= trong asp.net

Gửi bàigửi bởi neverland87 » T.Bảy 11/07/2009 9:59 am

Tên bài viết: Sự khác nhau giữa <%# và <%= trong asp.net
Tác giả: Sưu tầm
Cấp độ bài viết: 1
Tóm tắt:


Khi sang làm việc với ASP.NET MVC, chúng ta phải làm việc nhiều hơn với thẻ <%= %> và <%# %> trong ASP.NET. Và thường thì khó phân biệt được sự khác nhau giữa các thẻ đó. Sau đây là đoạn code
Trang default.aspx

Mã: Chọn hết

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Difference._Default" %>
  2. DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5. <title></title>
  6. <head>
  7. <body>
  8. <form id="form1" runat="server">
  9. <div>
  10. <p>Dấu = : <%= this.TestValue %></p>
  11. <p>Dấu # : <%# this.TestValue %></p>
  12. <p>Thuộc tính trong dấu = : <asp:Label runat="server" ID="_equals" Text="<%= this.TestValue %>" /></p>
  13. <p>Thuộc tính trong dấu # : <asp:Label runat="server" ID="_pound" Text="<%# this.TestValue %>" /></p>
  14. </div>
  15. </form>
  16. </body>
  17. </html>

Và đây là CodeBehind

Mã: Chọn hết

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. namespace Difference
  8. {
  9.  
  10. public partial class _Default : System.Web.UI.Page
  11.  
  12. {
  13.  
  14. protected void Page_Load(object sender, EventArgs e)
  15.  
  16. {
  17.  
  18. _testValue = "2";
  19.  
  20. }
  21.  
  22.  
  23. protected void Page_PreRenderComplete(object sender, EventArgs e)
  24.  
  25. {
  26.  
  27. //DataBind();
  28.  
  29. _testValue = "3";
  30.  
  31. }
  32.  
  33.  
  34.  
  35. public string TestValue
  36.  
  37. {
  38.  
  39. get { return _testValue; }
  40.  
  41. }
  42.  
  43.  
  44. private string _testValue = "1";
  45.  
  46. }
  47.  
  48. }

Kết quả khi chạy như sau:

- Nếu chưa comment đoạn code DataBind(); trong PreRenderComplete

Mã: Chọn hết

  1. Dấu = : 3
  2.  
  3. Dấu # :
  4.  
  5. Thuộc tính trong dấu = : <%= this.TestValue %>
  6.  
  7. Thuộc tính trong dấu # :


- Nếu bỏ comment đoạn DataBind();

Mã: Chọn hết

  1. Dấu = : 3
  2. Dấu # : 2
  3. Thuộc tính trong dấu = : <%= this.TestValue %>
  4. Thuộc tính trong dấu # : 2

Kết quả trên là do:

<%= expressions %> được thực hiện tại thời gian render trang web
<%# expressions %> được thực hiện khi ta gọi phương thức DataBing(), và thẻ này sẽ không được thực hiện nếu ta không gọi phương thức DataBind()
<%# expressions %> có thể được sử dụng trong thuộc tính của các server controls, còn <%= %> không thể làm thuộc tính cho các server controls.

Theo http://hacodingjournal.blogspot.com/


SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT

vanlam_it
Thành viên chính thức
Thành viên chính thức
Bài viết: 38
Ngày tham gia: CN 13/04/2008 6:57 pm

Re: Sự khác nhau giữa <%# và <%= trong asp.net

Gửi bàigửi bởi vanlam_it » T.Sáu 31/07/2009 10:20 am

bạn có thể giải thích thời gian render là gì vào lúc nào không? thanks

neverland87
Guru
Guru
Bài viết: 490
Ngày tham gia: T.Bảy 26/05/2007 4:31 pm
Been thanked: 8 time

Re: Sự khác nhau giữa <%# và <%= trong asp.net

Gửi bàigửi bởi neverland87 » T.Sáu 31/07/2009 11:41 am

vanlam_it đã viết:bạn có thể giải thích thời gian render là gì vào lúc nào không? thanks

Là khoảng thời gian server nhận yêu cầu từ phía client, sau đó đọc ngang qua các thành phần tĩnh trong trang (các thẻ HTML không chứa phần xử lý động), và nhận lấy và xử lý các thành phần động, cuối cùng trả lại trang tĩnh cho client . Kết thúc chuyển giao ^ ^
Để tính thời gian render, bạn tham khảo link sau:
http://www.thejoyofcode.com/Time_taken_ ... P.NET.aspx
SIMPLY THE BEST - ĐƠN GIẢN LÀ TỐT NHẤT


Quay về “[ASP.NET] Bài viết giới thiệu, hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách