SelectedValue, который является недопустимым, потому что он не существует в списке элементов, как обработать эту ошибку
Я получаю приведенную ниже ошибку при попытке связать данные.
SelectedValue, которое недопустимо, потому что его нет в списке элементов
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="JobCategoryEntityDataSource" DataTextField="ItemValue"
DataValueField="ItemValue" SelectedValue='<%# Bind("JobCategory") %>'
Width="230px">
</asp:DropDownList>
Я знаю причину, почему я получаю эту ошибку. Это потому, что он не может найти значение в выборе. Когда поле JohCategory из таблицы транзакций не может найти его в списке, поступающем из JobCategoryEntityDataSource, оно просто выдает ошибку.
Все, что я хочу сделать, это не связывать данные, если они не могут найти их в выпадающем списке и не хотят выдавать ошибки. Как я могу это сделать?
Другой вариант, если он не может найти подходящее значение, просто добавьте "Пожалуйста, выберите" или что-то подобное.
Может кто-нибудь помочь, пожалуйста?
2 ответа
Вы можете выбрать значение в DataBound
событие dropdown
, Вы можете проверить наличие значения и затем выбрать его, или вы можете реализовать try catch
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="JobCategoryEntityDataSource" DataTextField="ItemValue"
DataValueField="ItemValue"
Width="230px" OnDataBound="DropDownList2_DataBound">
</asp:DropDownList>
<asp:HiddenField ID="JobCategory" runat="server" value='<%# Bind("JobCategory") %>'></asp:HiddenField>
Code-Behind
protected void DropDownList2_DataBound(object sender, EventArgs e)
{
try{
HiddenField hf = (HiddenField)Form.FindControl("JobCategory");
DropDownList2.SelectedValue = hf.Value;
}Catch(Exception ex){
}
}
Вы должны связать его в коде и либо
- Оберните оператор в блок try/catch
- Проверьте, есть ли товар с
FindByName
сначала, затем, по желанию, добавьте его, если нет.