加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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>

马上解决了这个问题……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读