#c# #asp.net #ascx
#c# #asp.net #ascx
Вопрос:
У меня не получается получить выбранное значение элемента управления radiobuttonlist из файла aspx.cs. Элемент управления radiobuttonlist находится внутри файла .ascx. Я продолжаю получать ссылку на объект System.NullReferenceException, не установленную для экземпляра объекта.
Есть идеи?
Я несколько раз пытался использовать метод FindControl, меняя его, так как он терпел неудачу. Вот последнее, что я пробовал:
protected void ClientsDropDownList_Selected(object sender, EventArgs e)
{
this.ConsultationFormControl.LoadClient(int.Parse(ClientsDropDownList.SelectedValue));
if (ClientsDropDownList.SelectedValue != "Please Select One")
{
UserControl US = FindControl("ConsultationFormControl") as UserControl;
RadioButtonList rblMarStat = US.FindControl("rblMaritalStatus") as RadioButtonList;
if (rblMarStat.SelectedValue == "Married")
{
Response.Write("perfect");
}
}
}
Надеюсь, это поможет.
Джеймс
Хорошо, ребята, спасибо за вашу помощь. Похоже, у нас все получилось. Еще раз спасибо, AVD. Я помню, как в прошлом создавал общедоступное свойство для нескольких вещей. Я просто не мог думать сегодня вечером после всего этого кодирования без перерыва, и уже поздно. Это очень помогло. Мир, брат. Мирные ребята.
Комментарии:
1. Покажите нам свой подход, включая. часть, в которой вы получаете
NullReferenceException
.2. dotnetcurry.com/ShowArticle.aspx?ID=155
3. Я пытался использовать метод FindControl . Я сильно изменил его, пытаясь заставить его работать. Это последнее, что я пробовал, когда пришел сюда, за исключением:
Ответ №1:
Вы можете определить public
свойство / метод в пользовательском элементе управления, который возвращает selected
значение.
Редактировать:
Добавьте следующее свойство в код пользовательского элемента управления,
public string SelectedValue
{
get
{
return RadioButtonList1.SelectedValue;
}
}
Для доступа к свойству SelectedValue со страницы .aspx,
string value=YourControlID1.SelectedValue;
ИЛИ используйте метод FindControl,
RadioButtonList rad = (RadioButtonList)YourControlID1.FindControl("RadioButtonList1");
Response.Write(rad.SelectedValue);
Комментарии:
1. У меня умер мозг, и мне нужно будет сделать это завтра. Не могли бы вы привести мне пример в коде, чтобы мне было проще, Братан… На всякий случай
2. Чувак, спасибо, братан. Я кодировал часами без остановки и просто больше не мог думать. Это была отличная помощь!
3. Эй, второй ответ, который вы мне дали, — это в значительной степени то, что я пробовал в различных формах. Я просто закодировал его так, как у вас здесь (за исключением переименования элементов управления в соответствии с потребностями, конечно), и это дало мне то же исключение с нулевой ссылкой. Но создание общедоступного свойства работало безупречно. 🙂
4. @JamesKhouriDevJunkie — Да! Общедоступная собственность — лучший вариант.
Ответ №2:
Вы можете получить доступ к RadioButtonList с помощью,
RadioButtonList rlist = (RadioButtonList)UserControlName .FindControl(«RadioButtonList1»); строка str = rlist.Выбранное значение;