2009-07-19 64 views
7

Tôi có một nhãn trong trang chính (sample.master) được gọi là lblHeading.Tôi có thể thay đổi nội dung của nhãn trong trang chính khi tải trang nội dung không?

Tôi muốn thay đổi động văn bản của nhãn khi tôi tải trang nội dung.

Tôi cần thực hiện việc này vì tôi muốn thay đổi tiêu đề thành nội dung có ý nghĩa nhưng chỉ sau khi tôi biết về nội dung của trang.

Điều này có khả thi không?

Trả lời

6

Có.

Bạn muốn tạo strongly-type master page và sau đó bạn có thể truy cập thuộc tính của trang từ trang nội dung của bạn trong Page_Load hoặc bất cứ nơi nào khác.

2

Bạn có thể tạo thuộc tính công khai trong trang cái sẽ thay đổi nhãn.

public string Heading 
{ 
    set 
    { 
     lblHeading.text = value; 
    } 

} 
3

Có, có thể. MasterPage hoạt động giống như UserControl trong trang của bạn.

bước có thể để thực hiện điều này:

  1. Tạo một tài sản hoặc phương pháp trên MasterPage cho phép bạn thực hiện thay đổi đối với Label. Ví dụ .:

    public void ChangeLabel(string label) { 
        lblHeading.Text = label; 
    } 
    
  2. Từ Page của bạn, có tham chiếu đến MasterPage bằng Page.Master tài sản.

  3. Gọi phương thức được xác định trong bước 1 để thay đổi nội dung MasterPage.

Thông tin thêm: Bạn có thể cần phải cast Page.Master vào loại MasterPage của bạn, hãy thử Coding the Wheel's link để được hướng dẫn làm thế nào để làm điều đó.

+0

Ví dụ, từ trang của bạn làm điều này (trang chính có nhãn với ID = "Label_welcome") : Nhãn mpLabel = (Nhãn) Page.Master.FindControl ("Label_welcome"); nếu (mpLabel! = Null) { mpLabel.Text = "Chào mừng Fazio!"; } –

13

có, bạn có thể theo cách rất đơn giản này ........

((Label)Master.FindControl("lblHeading")).Text = "your new text"; 
2

làm như đã nêu ở trên. Sau đó, ví dụ: từ trang của bạn thực hiện điều này (trang chính có nhãn có ID = "Label_welcome"):

0

Nó cũng phụ thuộc vào mức độ kiểm soát sâu bên trong trang chính của bạn. Trong trường hợp của tôi, tôi đã có một nhãn kiểm soát bên trong một điều khiển ContentPlaceHolder ... vì vậy tôi đã phải làm điều này ...

Label myLBL = this.Master.FindControl("HeaderContent").FindControl("myLabel") as Label; 
Các vấn đề liên quan