2010-10-25 24 views
6

Tôi đang truy cập một phương pháp trên trang chính của mình. Tôi có một nhãn lỗi mà tôi muốn cập nhật dựa trên các thông báo lỗi tôi nhận được từ trang web của mình.Phương thức công khai của Access Master Page từ điều khiển người dùng/lớp/trang

public string ErrorText 
{ 
    get { return this.infoLabel.Text; } 
    set { this.infoLabel.Text = value; } 
} 

Tôi làm cách nào để truy cập từ điều khiển người dùng hoặc lớp học mà tôi đã thiết lập?

Trả lời

1

trang nên chứa đánh dấu tiếp theo:

<%@ MasterType VirtualPath="~/Site.master" %> 

sau đó Page.Master sẽ có không phải là một loại MasterPage nhưng loại trang chủ của bạn, ví dụ:

public partial class MySiteMaster : MasterPage 
{ 
    public string ErrorText { get; set; } 
} 

trang code-behind:

this.Master.ErrorText = ...; 

Một cách khác:

public interface IMyMasterPage 
{ 
    string ErrorText { get; set; } 
} 

(đặt nó vào App_Code hoặc tốt hơn - thư viện vào lớp)

public partial class MySiteMaster : MasterPage, IMyMasterPage { } 

Cách sử dụng:

((IMyMasterPage)this.Page.Master).ErrorText = ...; 
+0

Hey there abatischev, tôi gặp vấn đề tương tự như OP. Tôi sắp thử tuyến giao diện, có vẻ nhanh chóng :) Chỉ tò mò thôi, là MasterType, được sử dụng trong ví dụ đầu tiên có hợp lệ trong điều khiển Người dùng không? Tôi biết điều này hoạt động tốt với các trang con, tự hỏi nếu có một cách để có được điều này để làm việc với điều khiển người dùng trước khi thực hiện tùy chọn 2. Cảm ơn! – clamchoda

+0

@Chris: Xin chào! Theo như tôi biết - không may là không, nó không hoạt động cho UserControls. UC không biết gì về trang cái của trang mẹ, chỉ có một tham chiếu đến chúng: this.Page, this.Page.Master, do đó, tùy chọn # 2 là trang duy nhất tôi biết – abatishchev

5

Để truy cập vào masterpage:

this.Page.Master 

sau đó bạn có thể cần phải biến đổi thành kiểu thực tế của trang chủ để bạn có thể nhận được ErrorText tài sản hoặc làm trang chủ của bạn thực hiện một giao diện có chứa thuộc tính này.

+0

Làm thế nào tôi có thể sử dụng this.Page.Master từ một lớp học . Nó dường như không làm việc cho tôi. – Churchill

+0

http://stackoverflow.com/questions/416691/how-to-reference-a-master-page-from-a-user-control – DeveloperDan

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