【问题标题】:How to show all rows in listview如何在列表视图中显示所有行
【发布时间】:2016-10-16 08:10:32
【问题描述】:

我有一个 asp.net 网络表单和列表视图。我想使用 linq 从 SQL Server 表中获取数据。

但是当我看到结果时,我看不到带有示例第一个字段(人员 ID)的行。

如何显示所有结果?

在我的 SQL Server 表中,我看到它是这样的:
已更新
id 名称 更改日期 状态 实际
0 约翰 2016-05-10 00:00 状态1 0
0 约翰 2016-05-10 00:00 状态2 1
1 Jel 2016-03-10 00:00 状态3 1
2 安德鲁 2016-01-10 00:00 状态4 0
2 安德鲁 2016-03-10 19:30 状态2 1
3 Kozh 2016-03-10 19:30 状态1 1
4 Ars 2016-03-10 19:30 状态1 1
5 Oser 2016-03-10 19:30 状态1 0
5 Oser 2016-03-10 19:30 状态2 1

当我显示页面时,我只看到前两行

我的代码:

      <asp:ListView ID="ListView2" ItemType="DocCat.Models.ReqInf" SelectMethod="GetData
            DataKeyNames="ID" EnableViewState="false"  runat="server" visible="true"
                   UpdateMethod="ListView2_UpdateItem"   >
            <LayoutTemplate>
                <div class="outerContainer">
                    <table id="docTable">
                        <tr>
                        <th>ID</th>
                            <th>Name</th>
                            <th>ChangeStatus</th>
                            <th>Change Date</th>
 </tr>
                        <tr runat="server" id="itemPlaceholder"></tr>
                    </table>
                </div>
            </LayoutTemplate>
    <ItemTemplate >
                <tr>
                         <td><%# Item.ID %></td>
             <td><%# Item.F1%></td>
             <td><%# Item.ChangeS %></td>
            <td><%# Item.ChangeD  %></td></tr>
            </ItemTemplate>
           </asp:ListView> 

代码:

public IEnumerable<ReqInf> GetReq()
{
    IEnumerable<ReqInf> docsu = repository.ReqForDoc;
return  docsu.OrderBy(I => I.ID)
}

Asp.Net 网络表单、实体框架

更新
结果:
1 Jel 2016-03-10 00:00 状态3 1
3 Kozh 2016-03-10 19:30 状态1 1
4 Ars 2016-03-10 19:30 状态1 1
5 Oser 2016-03-10 19:30 状态2 1

更新
我使用 EFDB 上下文。

   public DbSet<ReqInf> ReqForDoc { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Entity<ReqInf>().ToTable("ReqForDoc");
            }

和存储库

public IEnumerable<ReqInf> ReqForDoc
        {
            get { return context.ReqForDoc; }
        }

【问题讨论】:

  • 如果您看到两行,那么列表视图的高度太小而无法看到所有四行。
  • 最后两行没有区别。可能是您有一些逻辑来仅显示不同的行。如果可能,请发布您的公司代码。
  • @Vicky_Thinking 当我更改我的行时,我需要保存它并制作具有不同日期和状态的另一行。我需要有日志,因为我需要查看所有具有相同 ID 的行。
  • @jdweng 我有分页,而且我的行数超过 4 行,仅供示例
  • @АндрейГолубцов 明白了你的意思,这很公平。您发布的代码对我来说看起来不错。能否请发布 linq 查询并绑定到列表视图?

标签: c# asp.net sql-server entity-framework


【解决方案1】:

一天后,我明白我的问题不在代码中。 我有一个列 ID ,EF 会自动将其识别为关键属性。但是,key 必须是唯一的,而且我:

  • 重命名 ID 列
  • 将 [Key] 属性添加到唯一属性(在我的情况下为 ChangeDate

我在模型中添加的代码:

using System.ComponentModel.DataAnnotations;
 namespace Project.Models
        {
            public class BaseClass
            {
                [Key]
                public DateTime ChangeDate { get; set; }
    ...

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多