Ваши входы называются star1, star2... star10
, но ваш цикл устанавливает i
в 0, 0.5, 1 ... 5, поэтому вы будете искать элемент управления с идентификатором star0
, star0.5
и т. Д.не существует
Предполагая, что вы не хотите иметь флажок, представляющий 0 звезд, вы захотите сделать что-то вроде этого:
for (double i = 0.5; i <= 5; i+=0.5)
{
if(pOld.OverallRating == i)
{
//Stars are 1-10 but display as x/5 (where 5 is star10, 4.5/5 is star9 etc)
var id = i * 2;
Control con = FindControl("star"+id);
((HtmlInputRadioButton)con).Checked = true;
}
}
, который будет искать входные данные с идентификатором star1, star2... star10
РЕДАКТИРОВАТЬ: Чтобы ответить на обновленный вопрос - вы пытаетесь привести элемент управления типа HtmlInputRadioButton
к RadioButton
- вместо этого приведите к HtmlInputRadioButton