У меня есть форма, связанная с объектным источником данных. Что objectdatasource получает свои значения из коллекции списков. Есть несколько элементов управления текстовыми полями, которые я должен был отключить для раскрывающегося списка, чтобы реализовать каскадный выпадающий список. Значения заполняются отлично, каскадный выпадающий список работает отлично, но на вставке я получаю это раздражающее бесполезное сообщениеAsp.net Formview с использованием C#
«Индекс находился за пределами массива». Поэтому я пытался понять это и не могу.
Предполагая, что это мой DropDownList вызывает проблему я пытался добавить этот код в код позади, как я вручную их обязательными, поэтому они не имеют текста =»<% # Bind („GroupID“)%>
protected void formGroupInput_ItemInserting(object sender, FormViewInsertEventArgs e)
{
if (formGroupInput.CurrentMode == FormViewMode.Insert)
{
e.Values["ddlStartTime"] = ((DropDownList)((FormView)sender).FindControl("ddlStartTime")).SelectedItem;
e.Values["ddlEndTime"] = ((DropDownList)((FormView)sender).FindControl("ddlEndTime")).SelectedItem;
e.Values["ddlRoomName"] = ((DropDownList)((FormView)sender).FindControl("ddlRoomName")).SelectedItem;
e.Values["ddlJackNumber"] = ((DropDownList)((FormView)sender).FindControl("ddlJackNumber")).SelectedItem;
e.Values["ddlInternetType"] = ((DropDownList)((FormView)sender).FindControl("ddlInternetType")).SelectedItem;
}
}
Я предполагаю, что это что-то делать с этим, потому что, когда я пытался отладить ее, поставив точку останова на мой метод ввода в моей DLL это даже не доходит, что еще до того, как появится сообщение об ошибке.
Благодаря
Код для занесения DROPDOWNLIST
protected void formGroupInput_DataBound(object sender, EventArgs e)
{
if (formGroupInput.CurrentMode == FormViewMode.Insert)
{
DropDownList roomName = (DropDownList)(formGroupInput.Row.FindControl("ddlRoomName"));
roomName.DataSource = getrooms.FetchRooms();
roomName.DataTextField = "RoomName";
roomName.DataValueField = "intRoom";
roomName.DataBind();
****Same concept for other 2 dropdownlist ******
}
}
Page Load Я называю это
protected void Page_Load(object sender, EventArgs e)
{
DropDownList startTime = (DropDownList)(formGroupInput.Row.FindControl("ddlStartTime"));
if (startTime.Items.Count == 0)
{
startTime.Items.Add("12:00AM");
startTime.Items.Add("12:30AM");
for (int i = 1; i <= 11; i++)
{
startTime.Items.Add(i + ":00AM");
startTime.Items.Add(i + ":15AM");
startTime.Items.Add(i + ":30AM");
}
startTime.Items.Add("12:00PM");
startTime.Items.Add("12:30PM");
for (int i = 1; i <= 11; i++)
{
startTime.Items.Add(i + ":00PM");
startTime.Items.Add(i + ":15PM");
startTime.Items.Add(i + ":30PM");
}
}
DropDownList endTime = (DropDownList)(formGroupInput.Row.FindControl("ddlEndTime"));
if (endTime.Items.Count == 0)
{
Same As Above
}
Знаете ли вы, какой метод выбрасывает исключение? Можете ли вы опубликовать трассировку стека? –
Кроме того, отправьте код, который вы используете, чтобы заполнить выпадающие списки. –
Вы пытались поставить контрольные точки наверху и переходить через каждую из ваших функций formGroupInput_ItemInsert *? – tgolisch