asp.net – 错误:SelectedValue无效,因为它在项目列表中不存在
发布时间:2020-12-16 03:32:22 所属栏目:asp.Net 来源:网络整理
导读:我有一个Gridview绑定到ObjectDataSource(objStudentDetails).在Gridview的编辑/插入模式中,其中一个字段是DropDownList,它从查找表中获取它的选择列表选项.我将此DropDownList绑定到另一个表示查找表的ObjectDataSource控件(objStateList).只要objStudentDe
我有一个Gridview绑定到ObjectDataSource(objStudentDetails).在Gridview的编辑/插入模式中,其中一个字段是DropDownList,它从查找表中获取它的选择列表选项.我将此DropDownList绑定到另一个表示查找表的ObjectDataSource控件(objStateList).只要objStudentDetails ObjectDataSource中的值与objStateList ObjectDataSource中的某个值匹配,它就可以正常工作,至少在非空字符串值的情况下是这样.
objStateList具有这些值(来自存储的proc加载它 – ID#6是一个空字符串”): StateId State ----------- ----- 6 4 AL 1 GA 3 KY 2 TN objStudentDetails具有这些值(来自加载它的存储过程): FirstName LastName State ----------- ---------- ----- tone smith TN 或者它可以有这个结果集(State是一个空字符串 – ”): FirstName LastName State ----------- ---------- ----- jenny johnson 在第一个objStudentDetails结果集中,EditItemTemplate中的状态DropDownList显示正常.但是,在第二个结果集中,我收到此错误: 'ddlEditState' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value 我认为,因为我的查找表有一个空字符串的值,objStudentDetails值与状态的空字符串匹配,但有些东西不能按照我期望的方式工作. 这是Gridview的EditItemTemplate代码: <EditItemTemplate> <asp:Panel ID="panEditState" runat="server"> <asp:DropDownList ID="ddlEditState" runat="server" CssClass="GridviewDropdownlist" DataSourceID="objStateList" DataTextField="State" DataValueField="State" SelectedValue='<%# Bind("State") %>' Width="50px"> </asp:DropDownList> </asp:Panel> </EditItemTemplate> 和objStateList,它调用一个方法传递查询表的查询参数: <asp:ObjectDataSource ID="objStateList" runat="server" SelectMethod="GetDropdownData" TypeName="AIMLibrary.BLL.DropdownData"> <SelectParameters> <asp:Parameter Name="itemsToGet" DefaultValue="state" /> </SelectParameters> </asp:ObjectDataSource> 有任何想法吗? 解决方法
首先将DropDownLists的AppendDataBoundItems属性设置为true.接下来,通过添加以下< asp:ListItem>来添加NULL ListItem.每个DropDownList的元素,以便声明性标记看起来像:
<asp:DropDownList ID="Categories" runat="server" DataSourceID="CategoriesDataSource" DataTextField="CategoryName" DataValueField="CategoryID" SelectedValue='<%# Bind("CategoryID") %>' AppendDataBoundItems="True"> <asp:ListItem Value="">[nothing selected]</asp:ListItem> </asp:DropDownList> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 从aspx访问应用程序设置并添加连接文本
- asp.net – 是否可以使用OAuth2来保护“非休息”应用程序
- asp.net-core – 为什么需要在ASP.NET Core MVC中设置“Use
- 框架升级后某个类型所在程序集发生转移,应用还能正常运行吗
- asp.net-mvc – ASP.NET MVC在调用方法时查找调用方法!Mod
- asp.net – Javascript:为什么如果(假)?
- 为什么用户信息存储在ASP.NET的默认成员资格提供者的两个不
- asp.net – 我可以愚弄HttpRequest.Current.Request.IsLoca
- typescript – 浏览中ts文件的空内容
- asp.net-mvc – 使用单元测试在asp.net mvc中验证重定向