目标:获取要显示的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>
答案 0 :(得分:0)
显然,它指向具有相同名称的表,指向名称稍有不同的服务器上具有相同名称的数据库。再加上这样一个事实,即代码正在查看的数据库中IsApproved为0(与我认为正在查看的数据库相反)。
课程:非常仔细地查看调试器的详细信息。如果LINQ查询没有任何内容,那么它甚至不会显示标题。