2009-04-10 2 views
3

У меня есть пользовательский элемент управления, в котором есть текстовое поле, теперь этот usercontrol находится на другом пользовательском элементе управления, который я использую на странице aspx, как я могу получить значение текстового поля на первый пользовательский элемент управления.Как получить значение текстового поля в элементе управления пользователя

ответ

9

Написать недвижимость в вашем UserControl, чтобы выставить его содержимое, например,

public string TextBoxValue 
{ 
    get { return txtControl1.Text; } 
} 

Таким образом, вы можете получить значение текстового поля, не подвергая весь контроль текстового поля как общественный объект.

2

Ответ Джона Лимьяпа является наилучшим решением для такого рода проблем. Выведите значения управления с использованием общедоступных свойств.

Однако, если вы не хотите это делать (или вам нужно сделать это для большого количества элементов управления и хотите избежать создания общедоступных свойств для каждого элемента управления), вы можете использовать Reflection для «поиска элемента управления», в ChildControls требуемого UserControl:

TextBox txt = UserControl1.FindControl("myTextBox") as TextBox; 

if (txt != null) 
{ 
    string val = txt.Text; 
} 
0

Я думаю, что легче получить значение из запроса. Вы можете написать универсальный метод, как это, чтобы найти его:

string get_value(string control_name) 
    { 
     var key = Request.Form.AllKeys.First(x => x.ends_with(control_name)); 
     return Request.Form[key]; 
    } 
1

В верхней части страницы .aspx, добавьте строку ниже выше метки.

<%@ Register TagPrefix="Test" TagName="TestControl" Src="Test.ascx" %> 

Эта директива регистрирует элемент управления таким образом, что его можно распознать при обработке страницы. TagPrefix определяет уникальное пространство имен элемента управления, TagName - это имя пользовательского элемента управления, а Src - путь пользовательского элемента управления. пользовательские элементы управления Declare как

<Test:TestControl id="TestControl" runat="Server"/> 

Доступ и настройка Элементы управления пользователя значений в .aspx страницы: Пользователь может получить доступ и установить значения пользовательского элемента управления с .aspx страницы с помощью свойств, используя JavaScript и фоновым кодом страницы aspx. Детали этого приведены ниже. Использование свойств Если элемент управления test.ascx имеет два текстовых поля и кнопку отправки. Вы можете получить доступ к значениям текстовых полей в элементе управления с страницы .aspx, объявив публичное свойство в .ascx.

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

В .aspx странице, вы можете получить доступ к ПгвЬЫате с помощью

TestControl.FirstName 
You can set the FirstName of the control from aspx page using 
TestControl.FirstName = "Suzzanne" 

Примечание: ref

Смежные вопросы