Мне нужно получить доступ к элементам управления, созданным CreateChildControls() из другого класса, так что, когда я выбираю файл, у меня есть путь к строке, на которую нужно ссылаться.Доступ к элементам управления, созданным CreateChildControls()
Я попытался решением в Accessing controls created dynamically (c#) и Problem in accessing dynamically created controls Но не радости благодаря
publicTextBox txtUrl;
protected override void CreateChildControls()
{
Label lblUrl = new Label();
lblUrl.ID = "lblUrl";
lblUrl.Text = "Url: ";
Controls.Add(lblUrl);
TextBox txtUrl = new TextBox();
txtUrl.ID = "txtUrl";
Controls.Add(txtUrl);
AssetUrlSelector picker = new AssetUrlSelector();
picker.ID = "ausUrl";
picker.DefaultOpenLocationUrl = OpenUrl;
picker.AssetUrlClientID = txtUrl.ClientID;
picker.AssetUrlTextBoxVisible = false;
Controls.Add(picker);
Control control = Page.LoadControl(_ascxPath);
Controls.Add(control);
}
Из другого класса я должен иметь возможность получить доступ к текстовому полю
protected void Button1_Click(object sender, EventArgs e)
{
AssetPicker asspi = new AssetPicker();
string aaa = asspi.txtUrl.Text;
}
Привет, спасибо за ваш помощник Я попробовал второй бит кода, теперь он возвращает предупреждение: txtUrl никогда не назначается и всегда будет иметь значение по умолчанию null – user1211929
"никогда не назначается и всегда будет иметь значение по умолчанию null" - в в этом случае вам нужно назначить его, что вы должны сделать в методе CreateChildControls - «txtUrl = new TextBox();» и т. д., а не «TextBox txtUrl = новый TextBox();» – Joe