ListView根本不显示

时间:2018-10-12 19:23:01

标签: c# asp.net listview iqueryable

目标:获取要显示的ListView。我只是想显示IsApproved列的值为1(true)的数据行

问题::ListView没有显示(没有数据,甚至没有标题)

我尝试过的事情:我已经尝试调试并使用WriteLine语句查看它被追赶的地方。用户正在获取一个值(SELECT查询),因此它不是null。

剩余的问题:因此,如果它正在获得价值,为什么整个事情都不会显示?我认为至少会显示标头(这些标头不是来自数据库)。我的数据绑定有问题吗?我也尝试添加lstUsers.DataBind();按照Listview not shown in asp.net

这是WriteLine输出/调试中的内容:

SELECT 
[Extent1].[ID] AS [ID], 
[Extent1].[UserName] AS [UserName], 
[Extent1].[FirstName] AS [FirstName], 
[Extent1].[LastName] AS [LastName], 
[Extent1].[EmailAddress] AS [EmailAddress],     
[Extent1].[IsApproved] AS [IsApproved]
FROM [dbo].[SomeUserRegistration] AS [Extent1]
WHERE [Extent1].[IsApproved] = 1

当我在Visual Studio中扩展以上内容时,它说:空=“枚举没有结果”,但是当我从GetDataFromQuery()执行此操作时,我可以从数据库[0] [1]和[2]中看到3个结果。 ]都有值


c#代码:

public IQueryable<SomeUserRegistration> lstUsers_GetData()
        {       
            IQueryable<SomeUserRegistration> users = null;
            users = GetDataFromQuery();

            if (users != null)
            {
                System.Diagnostics.Debug.WriteLine(users);
                return users;
            }
            else { return null; }

public IQueryable<SomeUserRegistration> GetDataFromQuery()
        {
            return db.SuperUserRegistrations.Where(m => m.IsApproved);
        }

aspx代码:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">

    <h1>Manage Requests</h1>

    <asp:ListView ID="lstUsers" runat="server" ItemType="Program.PData.SomeUserRegistration" DataKeyNames="ID" SelectMethod="lstUsers_GetData"
        OnItemCommand="lstUsers_ItemCommand" DeleteMethod="lstUsers_DeleteItem" OnSorting="lstUsers_Sorting"
        OnItemDataBound="lstUsers_ItemDataBound"
        ItemPlaceholderID="litPlaceHolder">
        <LayoutTemplate>
            <div class="table-responsive">
                <table class="table">
                    <thead>
                        <tr>
                            <th>Last Name</th>
                            <th>First Name</th>
                            <th>UserName</th>
                            <th>EmailAddress</th>                          
                        </tr>
                    </thead>
                    <asp:Literal ID="litPlaceHolder" runat="server" />
                </table>
            </div>
        </LayoutTemplate>

        <ItemTemplate>
            <tr>

                <td><%# Item.LastName %></td>
                <td><%# Item.FirstName %></td>
                <td><%# Item.UserName %></td>
                <td><%# Item.EmailAddress %></td>              
            </tr>
        </ItemTemplate>
    </asp:ListView>
    <%--  </asp:Panel>--%>
</asp:Content>

1 个答案:

答案 0 :(得分:0)

显然,它指向具有相同名称的表,指向名称稍有不同的服务器上具有相同名称的数据库。再加上这样一个事实,即代码正在查看的数据库中IsApproved为0(与我认为正在查看的数据库相反)。

课程:非常仔细地查看调试器的详细信息。如果LINQ查询没有任何内容,那么它甚至不会显示标题。