Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SelectedValue无效,因为它不在项目列表中,如何处理此错误_C#_Asp.net_Entitydatasource - Fatal编程技术网

C# SelectedValue无效,因为它不在项目列表中,如何处理此错误

C# SelectedValue无效,因为它不在项目列表中,如何处理此错误,c#,asp.net,entitydatasource,C#,Asp.net,Entitydatasource,当我尝试绑定数据时,出现以下错误 SelectedValue无效,因为它不在列表中 项目数量 我知道我犯这个错误的原因。这是因为它无法在选择中找到值。当事务表中的JohCategory字段在来自JobCategoryEntityDataSource的列表中找不到它时,它只会抛出一个错误 如果在dropdownlist中找不到数据,并且不想抛出错误,那么我只想不绑定数据。我该怎么做 另一个选项是,如果找不到匹配值,只需添加“请选择”或类似内容 有人能帮忙吗 您需要在代码隐藏中绑定它,并且 将

当我尝试绑定数据时,出现以下错误

SelectedValue无效,因为它不在列表中 项目数量


我知道我犯这个错误的原因。这是因为它无法在选择中找到值。当事务表中的JohCategory字段在来自JobCategoryEntityDataSource的列表中找不到它时,它只会抛出一个错误

如果在dropdownlist中找不到数据,并且不想抛出错误,那么我只想不绑定数据。我该怎么做

另一个选项是,如果找不到匹配值,只需添加“请选择”或类似内容


有人能帮忙吗

您需要在代码隐藏中绑定它,并且

  • 将语句包装在try/catch块中
  • 首先用
    FindByName
    检查项目是否存在,如果没有,可以选择添加它

您可以在
下拉列表的
数据绑定事件中选择值。您可以检查值是否存在,然后选择它,或者可以实现
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>

你能告诉我该把钓索放在哪里吗?我的dropdownlist在detailsview控件中,不确定代码放在哪里。谢谢,谢谢。现在我能够处理错误而没有任何问题。但还有另一个问题。因为dropdownlist中没有绑定,所以它不会将值保存在数据库中。知道吗?@user1833408“因为dropdownlist中没有绑定”,这意味着什么?在oroginal代码中,它为dropdownlist选择了edvalue=”。为了实现您建议的代码,我必须将其从代码中删除。但是现在,当我从dropdownlist中选择一个值并保存记录时,它不会将该值保存在数据库中。我假设这是因为没有对列表控件的绑定。我对此有点陌生,很抱歉我可能错了。我还不得不对你的代码做一些修改,因为DropDownList2.SelectedValue=hf.Value;行给出一个错误,表示找不到DropDownList 2。所以我改为dropdownlist2dl=(DropDownList)Form.FindControl(“DropDownList2”);dl.SelectedValue=hf.Value;希望这不会造成任何伤害。你能告诉我我到底要把钓索放在哪里吗?我的dropdownlist在detailsview控件中,不确定代码放在哪里。谢谢
<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>
protected void DropDownList2_DataBound(object sender, EventArgs e)  
{  
    try{
       HiddenField hf = (HiddenField)Form.FindControl("JobCategory");

       DropDownList2.SelectedValue = hf.Value;

    }Catch(Exception ex){

    }
}