'Itemimage1' имеет значение selectedvalue, которое является недопустимым, поскольку оно не существует в списке элементов. Имя параметра: значение часть 2
У меня есть проблема с этой ошибкой исключения на моем веб-сайте "itemImage1" имеет SelectedValue, который является недопустимым, потому что он не существует в списке элементов. Имя параметра: value.
Чтобы суммировать код, у меня есть две переключатели под названием гитара и бас. Если администратор выберет гитару, он сгенерирует указанный путь к файлу и будет искать изображения в этом месте. Затем он отобразит доступные изображения в раскрывающемся списке. То же самое касается баса, но с другим расположением.
Моя первая попытка с кодом, когда я выбираю гитарный радиобуттон, сработала отлично и отображает доступные изображения в выпадающем списке. Но когда я переключаюсь на басовый радиобуттон, он выдает мне ошибку исключения, о которой я упоминал выше.
Я попытался развязать его, например, установив datasource и selectedvalue в null, очистив элементы и установив selectedindex в -1. Но не все получается. Пожалуйста, посоветуйте или предоставьте решение для этого?
Что я уже пробовал:
Вот код:
protected void Page_Load(object sender, EventArgs e) { ShowItemImages(); } private void ShowItemImages() { var imageList = new ArrayList(); if (itemType1.Checked) { itemImage1.Items.Clear(); itemImage2.Items.Clear(); itemImage1.SelectedIndex = -1; itemImage2.SelectedIndex = -1; itemImage1.SelectedValue = null; itemImage2.SelectedValue = null; itemImage1.DataSource = null; itemImage1.DataBind(); itemImage2.DataSource = null; itemImage2.DataBind(); itemselectedValueGuitar1 = itemImage1.SelectedValue; itemselectedValueGuitar2 = itemImage2.SelectedValue; var images = Directory.GetFiles(Server.MapPath("~/Images/Brands/String Instrument Items/Guitar/")); foreach (var image in images) { var imageName = image.Substring(image.LastIndexOf(@"\") + 1); imageList.Add(imageName); } itemImage1.DataSource = imageList; itemImage1.DataBind(); itemImage2.DataSource = imageList; itemImage2.DataBind(); itemImage1.SelectedValue = itemselectedValueGuitar1; itemImage2.SelectedValue = itemselectedValueGuitar2; } else if (itemType2.Checked) { itemImage1.Items.Clear(); itemImage2.Items.Clear(); itemImage1.SelectedIndex = -1; itemImage2.SelectedIndex = -1; itemImage1.SelectedValue = null; itemImage2.SelectedValue = null; itemImage1.DataSource = null; itemImage1.DataBind(); itemImage2.DataSource = null; itemImage2.DataBind(); itemselectedValueBass1 = itemImage1.SelectedValue; itemselectedValueBass2 = itemImage2.SelectedValue; var images = Directory.GetFiles(Server.MapPath("~/Images/Brands/String Instrument Items/Bass/")); foreach (var image in images) { var imageName = image.Substring(image.LastIndexOf(@"\") + 1); imageList.Add(imageName); } itemImage1.DataSource = imageList; itemImage1.DataBind(); itemImage2.DataSource = imageList; itemImage2.DataBind(); itemImage1.SelectedValue = itemselectedValueBass1; itemImage2.SelectedValue = itemselectedValueBass2; } }
Вот код aspx:
<tr> <td style="width: 160px; height: 37px;"> Item Type:</td> <td style="height: 37px"> <asp:RadioButton ID="itemType1" runat="server" Text="Guitar" AutoPostBack="True" GroupName="ItemType"/> <asp:RadioButton ID="itemType2" runat="server" Text="Bass" AutoPostBack="True" GroupName="ItemType"/> </td> </tr> <tr> <td style="width: 160px; height: 37px;"> Item Image1:</td> <td style="height: 37px"> <asp:DropDownList ID="itemImage1" runat="server" Width="300px"> </asp:DropDownList> <br /> <asp:FileUpload ID="itemFileUpload1" runat="server" /> <asp:Button ID="itemUploadImage1" runat="server" Text="Upload Image" OnClick="itemUploadImage1_Click"/> </td> </tr> <tr> <td style="width: 160px; height: 37px;"> Item Image2:</td> <td style="height: 37px"> <asp:DropDownList ID="itemImage2" runat="server" Width="300px"></asp:DropDownList> <br /> <asp:FileUpload ID="itemFileUpload2" runat="server" /> <asp:Button ID="itemUploadImage2" runat="server" Text="Upload Image" OnClick="itemUploadImage2_Click"/> </td> </tr>