2009-07-22 50 views
6

Nếu tôi đặt điều khiển trong tệp .aspx như thế này;Thay đổi điều khiển truy cập của điều khiển ASP.NET

<asp:TextBox ID="protectedTextBox" runat="server">Some info</asp:TextBox> 

Tôi nhận được quyền kiểm soát được khai báo trong tệp .aspx.designer.cs của trang;

protected global::System.Web.UI.WebControls.TextBox protectedTextBox; 

Nhưng tôi muốn thay đổi công cụ sửa đổi truy cập của điều khiển thành public. Có bất kỳ thuộc tính hoặc tương tự nào mà tôi có thể đặt để thay đổi công cụ sửa đổi truy cập không?

Đây là lý do tại sao Tôi muốn làm điều đó. Tôi đang cố gắng để có đăng lại trang làm việc tốt đẹp và gọn gàng. Tôi có hai trang:

FirstPage.aspx 
    MyTextBox : textbox 
    MyButton : button, @PostbackUrl=Secondpage 

SecondPage.aspx 
    MyLabel : label 

Khi người dùng nhấp FirstPage.MyButton, tôi muốn viết giá trị của FirstPage.MyTextBox.Text vào SecondPage.MyLabel.Text. Tôi có thể làm điều đó với Page.FindControl, nhưng điều này có vẻ như một người nghèo thay thế để đúc trang trước đó như là một đối tượng FirstPage và đề cập trực tiếp đến điều khiển MyTextBox trên nó. Một cái gì đó như thế này;

// on the page_load of SecondPage.aspx; 
var previousPage = this.PreviousPage as FirstPage; 
this.MyLabel.Text = previousPage.MyTextBox.Text; 

Có cách nào để thay đổi công cụ sửa đổi truy cập không?

Trả lời

6

Bạn chỉ có thể xóa tuyên bố từ nhà thiết kế và đặt mã đó vào mã của bạn phía sau.

Các nhận xét xung quanh tuyên bố nói để thực hiện việc này.

/// To modify move field declaration from designer file to code-behind file. 
+0

tính năng này chỉ hợp lệ cho Dự án ứng dụng web. cho trang web không có tệp thiết kế. trong trường hợp này câu trả lời của @ Steve_Cooper sẽ hoạt động. public TextBox PublicTextBox {get {return this.MyTextBox; }} – Ozgur

2

Một tùy chọn tôi đã xem xét là viết một thuộc tính công khai hiển thị trang gốc;

public TextBox PublicTextBox { get { return this.MyTextBox; } } 

Việc nào sẽ hoàn thành công việc, nhưng có vẻ như bị hack.

1

Steve, phơi bày điều khiển của trang đó sẽ có ý nghĩa nếu bạn cần để thao tác những người điều khiển, nhưng trong trường hợp của bạn, bạn chỉ cần phải vượt qua một số dữ liệu (chuỗi) để xử lý khác, vì vậy tôi sẽ phơi bày đó và không phải là kiểm soát chính nó.

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