Если вы не можете получить доступ к hdloc из кода, либо Visual Studio не добавляет его на aspx.designer.cs (попробуйте удалить его и добавить обратно или изменить идентификатор, а затем вернуться к исходному значению) или скрытое полепомещается в другой шаблон другого элемента управления связыванием, что означает, что вам нужно использовать ctrl.FindControl ("hdloc"), а затем привести к HiddenField.Также вам нужно поместить это скрытое поле в UpdatePanel с UpdateMode = "Always".
protected void ddlLocation_SelectedIndexChanged(object sender, EventArgs e)
{
hdloc.Value = (sender as DropDownList).SelectedItem.Text;
}
Я уверен, что ddlLocation.SelectedItem.Text, подобно тому, как вы его используете, выдает ошибку компиляции, потому что ddlLocation не виден в коде позади, поскольку находится внутри EditItemTemplate.