Вам нужно будет иметь пользовательское событие & вам также необходимо выставить Text
свойство TextBox
в вашем UserControl, как это.
public partial class YourUserControl : UserControl
{
public String Text
{
get
{
return this.txtBox1.Text;
}
//write the setter property if you would like to set the text
//of the TextBox from your aspx page
//set
//{
// this.txtBox1.Text = value;
//}
}
public delegate void TextAppliedEventHandler(Object sender, EventArgs e);
public event TextAppliedEventHandler TextApplied;
protected virtual void OnTextApplied(EventArgs e)
{
//Taking a local copy of the event,
//as events can be subscribed/unsubscribed asynchronously.
//If that happens after the below null check then
//NullReferenceException will be thrown
TextAppliedEventHandler handler = TextApplied;
//Checking if the event has been subscribed or not...
if (handler != null)
handler(this, e);
}
protected void yourUserControlButton_Click(Object sender, EventArgs e)
{
OnTextApplied(EventArgs.Empty);
}
}
Затем на странице ASPX, где вы разместили YourUserControl
(OR вы динамически добавлять его из кода позади), вы можете подписаться на это событие, как это.
protected void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
yourUserControl.TextApplied += new YourUserControl.TextAppliedEventHandler(yourUserControl_TextApplied)
}
}
Вы можете использовать настраиваемое событие пользовательского элемента управления на своей странице следующим образом.
protected void yourUserControl_TextApplied(Object sender, EventArgs e)
{
yourLabelInYourPage.Text = yourUserControl.Text;
}
И вы сделали ...
EDIT: Вы можете переименовать элементы управления & события, как вам нравится. Я использовал имена только для примера.
EDIT: В веб-проектов, если вы хотите добавить свой пользовательский элемент управления динамически, то, вам, возможно, придется включать пространство имен ASP
на странице, как это.
using ASP;
И добавить этот Directive
на вашей странице в ASPX разметке.
<%@ Reference Control="~/PathToYourUserControl/YourUserControl.ascx" %>
Привет, спасибо за ваше решение. Я только сейчас начинаю изучать Asp.net Так PLZ Скажите, какое имя я должен использовать в «YourUserControl» – Gurunathan
Я использую ucTest для «yourUserControl» Это правильно или нет. Я получил ошибку в TextApplied Этот текст не существует в текущем контексте на странице Usercontrol. – Gurunathan
Вы всегда можете назвать свои элементы управления и события по своему усмотрению. Я разместил имена только для примера. Для ошибки я только что отредактировал код. Это была в этой строке 'public event TextAppliedEventHandler ApplyTextClicked;' Замените его на 'public event TextAppliedEventHandler TextApplied; ' –