asp.net – 如何在EditItemTemplate中使用Bind()获取可空属性?
发布时间:2020-12-16 10:00:53 所属栏目:asp.Net 来源:网络整理
导读:我有一个GridView绑定到一些实体数据源.编辑已启用. GridView中显示的实体与另一个实体相关联.假设我正在显示正在创建产品的机器(每台机器没有或一种产品类型).我在gridview中显示产品的名称 ItemTemplate asp:Label ID="Label1" runat="server" Text='%# ((
我有一个GridView绑定到一些实体数据源.编辑已启用. GridView中显示的实体与另一个实体相关联.假设我正在显示正在创建产品的机器(每台机器没有或一种产品类型).我在gridview中显示产品的名称
<ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# ((Machine)Container.DataItem).Product == null ? "-" : ((Machine)Container.DataItem).Product.Name %>'> </asp:Label> </ItemTemplate> 效果很好.现在我希望能够在EditItemTemplate中编辑相关产品.所以我补充道 <EditItemTemplate> <asp:DropDownList runat="server" ID="ddProducts" DataSourceID="dsProducts" DataTextField="Name" DataValueField="ProductID" SelectedValue='<%# Bind("Product.ProductID") %>' AppendDataBoundItems="true"> <asp:ListItem Text="" Value="0"></asp:ListItem> </asp:DropDownList> </EditItemTemplate> 它不起作用,因为当机器没有关联的产品时,没有匹配的SelectedValue,无论如何Product是null.我在DropDownList中添加了空项,当机器没有产品时应该选择它.此外,如果我使用产品编辑机器并选择此项目,则列应该为空. 我怎样才能做到这一点? 解决方法
我现在就开始工作了. GridView自动将空值转换为空字符串,因此问题不是绑定,而是我为空值添加的特殊项.
更改 <asp:ListItem Text="" Value="0"></asp:ListItem> 至 <asp:ListItem Text="" Value=""></asp:ListItem> 马上解决了这个问题…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc-3 – 用MVC构建一个大型项目软件
- [和管子对话] 1 2007-4-5/对面向对象的你言我语
- asp.net – 如何为客户端和服务器缓存设置不同的
- asp.net-4.0 – 我可以强制asp设置与id相同的名称
- asp.net-mvc-3 – 在ASP.NET MVC3中混合基本身份
- .net – MVC6的VersionedRoute属性实现
- asp.net-mvc-3 – MVC3 – 使用Entity框架设置Co
- asp.net-mvc – 在自定义Html帮助器中访问模型对
- asp.net-mvc-2 – ASP.MVC 2 RTM ModelState Id属
- 动态ASP.net Web表单
热点阅读