2013-04-14 117 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個文本框控件,你會發生什麼?因此,對於希望自定義控件公開的每個屬性,都需要將屬性添加到後面的代碼中。您甚至可以添加與子控件的屬性無關的屬性,並將該值保存在隱藏字段或控件狀態甚至視圖狀態中。

+0

謝謝你,但你忘記添加分號給吸氣劑和二次固位劑 – danarj

+0

是的未經測試的代碼 –

+0

謝謝你對我有用 – danarj