我的网站itemImage1
中存在此异常的问题,SelectedValue
有value
无效,因为它在项目列表中不存在。
参数名称:null
。
总结一下代码,我有两个叫吉他和贝司的单选按钮。如果管理员选择吉他,它将生成指定的文件路径并查找该位置内的图像。然后,它将在下拉列表中显示可用图像。低音也是如此,但位置不同。
我第一次尝试使用代码,因为我选择了吉他单片机,它完美地工作并在下拉列表中显示可用的图像。但是当我换到低音单选按钮时,它给了我上面提到的例外。
我尝试通过将数据源和选定值设置为SelectedIndex
来解除绑定,清除项目并将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;
}
}
设置为-1,但它仍然无法正常工作。我哪里错了?
以下是代码:
<tr>
<td style="width: 160px; height: 37px;"><strong>Item Type:</strong></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;">
<strong>Item Image1:</strong></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;">
<strong>Item Image2:</strong></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>
这是aspx代码:
parser.add_argument('args', nargs='+')