【发布时间】:2014-04-30 21:05:07
【问题描述】:
我被困住了,希望有人能把我踢向正确的方向。
我有一个ListView,我一直在循环出单个数据库表中的数据,使用模型绑定来执行此操作(顺便说一句,Web 表单项目)。到现在为止还挺好。现在我需要检查另一个表中的一些值,以修改循环出来的对象的外观。基本上我想要做的是,我的ListView 中有 2 个按钮,如果我要加入的表中存在记录,则其中一个按钮应该获得visible = false 属性。
所以我一直在尝试编写一个 LINQ 查询来做到这一点,到目前为止没有太大的成功。
我编写的查询示例
var query2 = from l in myContext.Table1
join p in myContext.Table1.Where(p => p.pID == 1)
on l.pID equals p.pID
where l.UserId == 1
这仅返回我加入的表中确实存在的记录,我希望显示 Table1 中的所有记录 - 然后运行某种 if 语句来检查加入表中的记录是否存在,导致按钮显示或不显示。
更多信息,我正在使用 SelectMethod 返回 IQueryable。
另外,由于使用模型绑定,我是否需要为这个连接对象声明一个新类,或者有没有更简单的方法(因为这只会在整个网站上使用一次)。
提前感谢任何提示或帮助!
更新
使用ListView 循环出我的数据
Default.aspx
<asp:ListView ID="MyListView" runat="server" ItemType="Project.Models.Object" SelectMethod="MyListView_GetData">
<ItemTemplate>
<!-- HERE i want to either add a button, or don't -->
</ItemTemplate>
</asp:ListView>
Default.aspx.cs
public IQueryable<Project.Models.Object> MyListView_GetData()
{
try
{
int qs2 = 2;
var user = User.Identity.GetUserId().ToString();
var query = from p in myContext.Object.Where(p => p.pID== qs2)
select p;
foreach (var item in query)
{
var doesExist = myContext.Object2.Any(m => m.eID == item.eID);
if (doesExist)
{
// Need to do something here?
}
}
return query.OrderByDescending(item => item.eID);
}
catch (Exception)
{
ModelState.AddModelError("", "Desc.");
return null;
}
}
【问题讨论】:
标签: c# sql sql-server linq webforms