Я написал настраиваемый пользовательский элемент управления, который возвращает некоторые пользовательские данные. Чтобы загрузить настраиваемый пользовательский элемент управления, я использую следующую строку кода:
UserControl myUC = (UserControl).Load("~/customUserControl.ascx");
Но как я могу получить доступ к string user внутри User Control myUC?
Извините, английский не мой основной язык. Какую часть я должен перефразировать?





Вам нужно будет привести загруженный элемент управления к фактическому типу и использовать его общедоступное свойство:
MyUserControl myUCTyped = (MyUserControl)myUC;
myUCTyped.ThePublicProperty = "some value";
Предположим, имя вашего настраиваемого пользовательского элемента управления - «MyUserControl».
Попробуйте этот код:
MyUserControl myUC = (UserControl).Load("~/customUserControl.ascx") as MyUserControl;
string result = myUC.user;
Я сделал так, как вы предлагали. Но поскольку я хочу загружать все динамически, я не могу поместить <% @ Register Src = "~ / customUserControl.ascx" TagName = "MyUserControl" TagPrefix = "myUC"%> вверху. Думаю, именно поэтому я получаю ошибку, когда копирую и вставляю ваш код.
Убедитесь, что ваш пользовательский элемент управления является производным от System.Web.UI.Control.
Назовем ваш пользовательский элемент управления "Боб"
Если вы наследовали от UserControl в Бобе, я думаю, это безопасно:
Bob b = (Bob).Load("~/customUserControl.ascx");
Что касается пользовательской части, я не могу понять, что вы хотите сделать, это «пользователь» в классе, где вы создали пользовательский элемент управления «Боб», и вы хотите установить свойство в пользовательском элементе управления «Боб», или это наоборот?
Для первого вы должны создать свойство в своем пользовательском элементе управления.
class Bob : UserControl{
public string User { get; set;}
}
а затем установите его, когда вы создадите экземпляр «Боб».
b.User = theuser;
Пока спасибо. Мой код в точности такой же, как написано выше:
public partial class todo : System.Web.UI.UserControl
{
private string mysecondteststring;
public string setValue
{
get
{
return mysecondteststring;
}
set
{
mysecondteststring = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
// my code
}
}
Но я не могу создать экземпляр опроса в моем коде веб-службы. Я что-то забыл?
-> Забыл добавить Reference на страницу .aspx, где пользовательский элемент управления загружается динамически. Теперь он работает с обычными страницами .aspx.
Пример кода можно найти здесь
Кто-нибудь из вас знает, как пользовательские элементы управления могут быть добавлены в веб-службы, потому что ссылочный атрибут там недоступен?
О, пожалуйста, перефразируйте. В этом нет особого смысла.