2011-07-22 5 views
6

Một câu hỏi cơ bản nhưng không có câu hỏi như vậy trên Stack Overflow (đối với ASP.NET)làm thế nào để hiển thị một giá trị phiên trong một textbox ASP

<asp:TextBox ID="txtUserName" runat="server" Text=<% Session["UserName"] %> > 

Tôi đã làm điều này một tuần trước đây, bây giờ cái gì là sai. Nó phải đơn giản. Tôi cũng đã thử <% =%>, nó cũng không hoạt động. Đặt một dấu ngoặc đơn xung quanh '<%%>' cho lỗi liên kết. Giúp

+0

giải quyết nó. Sẽ đăng giải pháp khi tôi được phép. –

Trả lời

5

Điều tôi đã làm là kéo hộp văn bản trong mã C# và đặt giá trị văn bản thành phiên. Ví dụ:

txtUserName.text = Session["UserName"]; 

Sử dụng nó trong một trong những chức năng mà kiểm tra các giá trị phiên hoặc bạn có thể sử dụng chức năng Page_Load (chức năng mặc định cho tất cả các trang)

8

Tôi thường giấu các chi tiết thực hiện từ mã aspx với một tài sản: nộp

cs

public string UserName { get { return Session["UserName"]; } } 

.aspx

<asp:TextBox ID="txtUserName" runat="server" Text='<%= UserName %>' > 
+0

từ thích một cái gì đó trong .aspx :) –

+0

Nó có thể là cùng một sintax trong aspx, có thể các dấu ngoặc kép đang gây ra cho bạn vấn đề. – Ernesto

+0

Tôi nghĩ rằng sintax này '<% = không hoạt động với các thuộc tính thẻ máy chủ. – Ernesto

1

Bây giờ tôi nghĩ rằng mã của bạn sẽ trông như thế <asp:TextBox ID="txtUserName" runat="server" Text='<%# Session["UserName"] %>' >

Tôi luôn quên sintax cho inlin e code, this thông tin có thể hữu ích tôi nghĩ.

+0

đây là cú pháp ràng buộc, tôi nghĩ rằng tôi đã thử rằng, đã không làm việc –

+0

Nó hoạt động nhưng tôi quên thêm bạn cần phải gọi phương thức databind trên điều khiển để nó được đánh giá. Của bạn là những gì tôi thường làm nhưng bạn nói với asawyer rằng bạn sẽ preffer một cái gì đó trong aspx. – Ernesto

+0

Điều đó có nghĩa là tôi phải liên kết phiên với điều khiển hộp văn bản trong thuộc tính hoặc tôi phải gọi hàm textbox.databind() để ràng buộc. Có vẻ quá nhiều việc. Cửa sổ thuộc tính không cho phép liên kết các biến phiên cho tôi. –