2010-09-15 27 views
11

Tôi phải tìm một trang Control trong trang aspx được liên kết với trang chính.Tìm điều khiển trên trang có trang cái

Trang chủ chứa:

<asp:ContentPlaceHolder ID="MainContent" runat="server"/>    

Các trang nội dung bao gồm:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 
</asp:Content> 

Tôi đã thêm một Table với IDformtable như một đứa trẻ của Content2.

Tôi cố gắng để sử dụng đoạn mã sau để truy cập Table, nhưng mã trả về null:

protected void Ok_Click(object sender, EventArgs e) 
{ 
    Table tblForm = this.FindControl("MainContent").FindControl("formtable") as Table;     
} 

Làm thế nào tôi có thể truy cập vào Table?

Trả lời

25

Hãy thử điều này

Table tblForm = this.Master.FindControl("MainContent").FindControl("formtable") as Table; 

Thanh toán Control ID Naming in Content Pages này để biết thêm chi tiết

0

Bạn đang ở trong bối cảnh nào khi bạn đang cố thực hiện điều này? Bạn đang ở trong codebehind của trang cá nhân?

Nếu bạn là Content1.FindControl("formtable") as Table và điều đó có thể xảy ra.

0

Làm việc với FindControl() gây ra các biến chứng đôi khi. Việc xác định thuộc tính công khai cho điều khiển đó trong trang chính dễ dàng hơn và sau đó kiểm soát truy cập thông qua thuộc tính.

bạn nên thêm dòng này vào trang con:

<%@ MasterType VirtualPath="~/MasterPage.master" %> 
Các vấn đề liên quan