2013-04-14 5 views
0

가 나는 asp.net 사용자 지정 컨트롤을 만들 behinde액세스 속성은

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="control.ascx.cs" Inherits="test.control.control" %> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 

나는 aspx 페이지에 드롭하고 난 사용자 지정 컨트롤의 Text 속성을 사용하고자하지만, 사용자 지정 컨트롤에는 Text 속성이 없습니다.

<uc1:control runat="server" id="control" /> 

답변

1

당신은 그 텍스트 상자의 텍스트 속성을 나타내는 뒤에 코드에 속성을 추가해야합니다.

그래서 내 control.ascx.cs 그런

public string Text 
{ 
    get { return TextBox1.Text; } 
    set { TextBox1.Text = value; } 
} 

<uc1:control runat="server" id="control" Text="My Control" /> 

그냥 명확하게 작동합니다 - 사용자 지정 컨트롤이 자연스럽게 자식 컨트롤의 속성을 상속하지 않습니다에 대한 예를 들어, 컨트롤에 2 개의 텍스트 상자 컨트롤이 있으면 어떻게 될 것으로 예상됩니까? 따라서 사용자 정의 컨트롤에서 노출하고자하는 각 속성에 대해 코드 뒤에 속성을 추가해야합니다. 심지어 자식 컨트롤의 속성과 관련이없는 속성을 추가하고 값을 숨겨진 필드 나 컨트롤 상태 또는 심지어 viewstate에 유지할 수도 있습니다.

+0

감사하지만 당신은 getter 및 setter satatements에 세미콜론을 추가하는 것을 잊지 마십시오 – danarj

+0

예. 테스트되지 않은 코드 –

+0

고맙습니다. – danarj