• 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

Moderator: vietluyen

neverland87
Guru
Guru
Posts: 490
Joined: Sat 26/05/2007 4:31 pm
Been thanked: 8 times

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

Postby neverland87 » Sat 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

Code: Select all

  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

Code: Select all

  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

Code: Select all

  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();

Code: Select all

  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
Posts: 38
Joined: Sun 13/04/2008 6:57 pm

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

Postby vanlam_it » Fri 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
Posts: 490
Joined: Sat 26/05/2007 4:31 pm
Been thanked: 8 times

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

Postby neverland87 » Fri 31/07/2009 11:41 am

vanlam_it wrote: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


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

Who is online

Users browsing this forum: No registered users and 0 guests