【问题标题】:Create a Groupedby HTML table using linq query使用 linq 查询创建 Groupedby HTML 表
【发布时间】:2023-03-26 18:19:01
【问题描述】:

使用以下:Windows 7、Visual Studio 2013、VB、Bootstrap、Jquery

我是网页设计新手。

我正在尝试创建一个列表/表格...任何内容...以显示按其部门分组的设备列表。我目前只是列出了部门。表中有4条记录: 两条记录在部门 01 中,两条记录在部门 02 中 每个部门有两台设备。 下面的代码将所有记录拉入创建同一部门的多个列表:

 - 01
 - 01
 - 02
 - 02

我想要:

 - 01
 - Equipment1
 - Equipment2
 - 02
 - Equipment1
 - Equipment2

行:

mUserHistorys = mUserHistorys.OrderBy(Function(x) x.Department_Selected).ToList()

是我从加载页面时加载的内存数据中提取的地方。 我如何获得独特的部门?我已经尝试过 Distinct 和 GroupBy,但我认为我没有正确放置它们。

Private Sub RenderPage()

Dim HTMLString As String = ""
Dim SortKey As String = "A"
Dim CompareValue As String = ""
Dim SubmitString = ""

mUserHistorys = mUserHistorys.OrderBy(Function(x) x.Department_Selected).ToList()
For Each p In mUserHistorys
    SubmitString = "Bookmark:" & p.Department_Selected & "-" & p.Equipment_Selected

    HTMLString &= "<table> " & vbCrLf
    HTMLString &= "<td>" & p.Department_Selected & "</td>" & vbCrLf
    HTMLString &= "</table> " & vbCrLf       

Next
Me.literalListHTML.Text = HTMLString
End Sub

【问题讨论】:

    标签: sql-server vb.net linq


    【解决方案1】:
    var info = (from b in mUserHistorys
                            where b.Department_Selected != null
                            select b).ToList()
                            .GroupBy(x => x.Department_Selected)
                            .Select(y => y.First())
                            .OrderBy(z => z.Department_Selected);
    

    我有幸使用这个 linq 查询来做类似的事情。如果它已经是一个对象列表,您可以从 .GroupBy 开始,即

    mUserHistorys.GroupBy(x => x.Department_Selected)
                            .Select(y => y.First())
                            .OrderBy(z => z.Department_Selected);
    

    【讨论】:

    • 我都试过了,它们在 x、y 和 z 上都有标志。他们声明: x 未声明。由于其保护级别,它可能无法访问。
    • 我测试了一个示例代码。为我的 VB 代码风格道歉,与 C# 相比,我不熟悉 VB.NET。 .NetFiddle Demo.
    【解决方案2】:

    @stuggyg 这就是我最终得到的结果。我现在唯一的问题是设备没有上升。但是,非常感谢您的帮助!它帮助我想出了这段代码:

        Private Sub RenderPage()
    
        Dim HTMLString As String = ""
        Dim SortKey As String = "A"
        Dim CompareValue As String = ""
        Dim SubmitString = ""
    
        Dim Depts = From dept In mUserHistorys
                    Select dept.User_ID, dept.Department_Selected, dept.Equipment_Selected
                    Where User_ID = _user.User_ID
                    Order By Equipment_Selected Ascending
                    Group By DeptName = Department_Selected
                    Into EqInDept = Group
                    Order By DeptName
    
        HTMLString &= "<div class=""container-float""> " & vbCrLf
        For Each p In Depts
            HTMLString &= "<a id=""deptheader"" class=""list-group-item"">" & p.DeptName & "" & vbCrLf
    
            For Each r In mUserHistorys
                SubmitString = "Bookmark:" & r.Department_Selected & "-" & r.Equipment_Selected
                If r.Department_Selected = p.DeptName Then
                    HTMLString &= "<a id=""equiplist"" class=""list-group-item"" <button id=""iconButton"" onclick=""SubmitNextForm('" & SubmitString & "');""  type=""button"" class=""btn btn-normal""><span class=""glyphicon glyphicon-remove-sign"" ></span></button>" & r.Equipment_Selected & "</a>" & vbCrLf
                End If
            Next
            HTMLString &= "</a> " & vbCrLf
        Next
        HTMLString &= "</div> " & vbCrLf
    
        Me.literalListHTML.Text = HTMLString
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2011-02-18
      相关资源
      最近更新 更多