我有一个字典,其中Key是一个Id,值是一个字符串
我现在有一个人物对象列表,其中每个人都有一个CarIds属性
IEnumerable<int>
Run Code Online (Sandbox Code Playgroud)
我想基本上过滤对象列表,只包括其中一个属性包含在dict中的项目.
例如.这样的事情:
var dictionary = GetDict();
var people = GetPeople();
people = people.Where(r => dictionary.ContainsAny(r.CarIds)).ToList();
Run Code Online (Sandbox Code Playgroud)
这样的事情是否存在于我可以做类似于ContainsKey()的事情但是检查int中的任何一个?
如果我有这个代码:
public interface IJobHelper
{
List<T> FilterwithinOrg<T>(IEnumerable<T> entities) where T : IFilterable;
}
Run Code Online (Sandbox Code Playgroud)
有什么东西支持做这样的事情:
public interface IJobHelper
{
List<T> FilterwithinOrg<T>(IEnumerable<T> entities) where T : IFilterable or ISemiFilterable
}
Run Code Online (Sandbox Code Playgroud)
所以它会接受任何支持两个接口之一的东西.我基本上试图创建一个重载.
我有一个asp.net-mvc网站,我有一个html数据表,其中一列是排名,表示该行的优先级(每行代表一个请求).我允许人们使用新数字连续编辑数据,但它实际上并不影响任何其他行(例如,没有任何东西阻止人们输入另一行中存在的alraedy值)
我正在寻找一个更有效的前端和快速后端的解决方案.我将分解每个:
我想要一些功能,我可以上下拖动行或点击向上/向下箭头,或者当我连续输入排名值时,它会更新所有其他行的排名.我基本上不希望用户必须更新每一行,如果有一个排名为#1的新条目(基本上必须更新前一个1 => 2,前一个2 => 3,前三个=> 4等......
是否有任何jquery库或有用的模式,以帮助支持此功能(以避免必须从头开始连接),因为这看起来像我可以想象许多其他人使用的通用功能.
作为参考,如果有人熟悉JIRA Greenhopper规划板,这将是一个理想的模拟实例.
我的相关问题是,当我更新后端时,我试图弄清楚如何避免这种操作真的很慢.如果我的数据库表中有一个排名字段,有人将项目更新为第一,我基本上必须在每一行上运行更新查询,将值更改为现有值+ 1.是否有一些模式可以执行此操作更有效?
我有一堆可拖动的图像,我有一堆可放置的项目.在trello中,当我将图片拖到卡片上时,它会卡在卡片的右下角.

如果我在同一张卡上拖动另一个人的图片,它会捕捉到最后一张图片的左侧,等等.这部分是jquery UI的内置API可放置还是这个自定义代码来获取此行为?
这是我目前的代码:
<script type="text/javascript">
$(function () {
$(".draggable").draggable({ revert: "invalid", snap: "true", snapMode: "inner" });
$(".droppable").droppable({
});
});
</script>
Run Code Online (Sandbox Code Playgroud) jquery jquery-ui jquery-ui-draggable jquery-ui-droppable trello
我看到这个问题已经在IE9周围被问到,但是在html表的随机行中添加了额外的列.根问题似乎是在IE 10中修复的IE 9错误(但我有很多IE9用户)
它声明它通常发生在通过ajax构建的表中,但我在输出html表的常规页面上看到这一点.
有一个解决方法Javascript解决方案,但答案假定您正在构建一个使用Javascript的表(来自ajax调用).我正在使用局部视图(或者在某些情况下只是直接在单个页面上呈现常规格式化的html表)所以我想知道是否有一个解决方案可以在IE9上直接渲染直接html时阻止此UI问题页.
我想避免在我的实际代码中实际上没有空格,因为这将很难维护.
html internet-explorer html-table internet-explorer-9 browser-bugs
我有以下html:
<div class="list">
<div class="sortable">
<div class="contentItem"> Some content </div>
<div class="contentItem"> Some content </div>
<div class="contentItem"> Some content </div>
</div>
</div>
<div class="list">
<div class="sortable">
</div>
</div>
<div class="list">
<div class="sortable">
<div class="contentItem"> Some content </div>
<div class="contentItem"> Some content </div>
<div class="contentItem"> Some content </div>
</div>
</div>
<div class="list">
<div class="sortable">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我试图隐藏所有"list"类,其中没有任何"contentItem"div.所以它基本上采取了这个
$(".list").hide();
Run Code Online (Sandbox Code Playgroud)
这将隐藏所有但忽略其中包含"contentItem"元素的那些
这可以作为jquery选择器吗?
我试图弄清楚如何使用nhibernate缓存一个连接的查询,它似乎不正常工作
这是我的代码:
public CacheTestViewModel GetCacheTestViewModel()
{
var vm = new CacheTestViewModel();
var session = Repository.Session;
using (var tx = session.BeginTransaction())
{
vm.Projects = Repository.Session.Query<Project>()
.FetchMany(r=>r.ProjectApplications)
.ThenFetch(r=>r.Application)
.Cacheable().CacheMode(CacheMode.Normal)
.ToList();
tx.Commit();
}
return vm;
}
Run Code Online (Sandbox Code Playgroud)
我一遍又一遍地运行它似乎是从二级缓存加载Project对象但它仍然返回到db来查询ProjectApplication对象,这很慢
是否有可能nhibernate缓存整个查询,以便从缓存中返回整个图形?
注意:我确实打开了查询缓存以及使用Cache.ReadWrite()设置的所有实体
这是我的缓存配置
return configuration
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<ApplicationMap>().Conventions.Add(typeof(Conventions)))
.ExposeConfiguration(
c => {
// c.SetProperty("proxyfactory.factory_class", proxyFactory);
c.SetProperty("cache.provider_class", "NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache");
c.SetProperty("cache.use_second_level_cache", "true");
c.SetProperty("cache.use_query_cache", "true");
c.SetProperty("expiration", "86400");
})
.BuildSessionFactory();
Run Code Online (Sandbox Code Playgroud) 我有一组数据:
var myArray = [{"id": 1, "name", "John"},{"id": 2, "name", "Joe"},{"id": 3, "name", "Bill"}]
$.post("/MyController/Update", myArray, function (data) {
alert("Complete");
});
Run Code Online (Sandbox Code Playgroud)
这是我的 asp.net-mvc 控制器操作
public ActionResult Update(List<Person> people)
{
return Json(new {Success = true});
}
public class Person
{
public int id {get;set;}
public string name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
var paramString = JSON.stringify({ people: myArray});
$.post("/MyController/Update", paramString , function (data) {
alert("Complete");
});
Run Code Online (Sandbox Code Playgroud)
但是当我查看服务器上的 people 参数时,我要么看到:
关于我在这里做错了什么有什么建议吗?
我在我的 C# 代码中得到一个字符串,它来自一些 javascript 序列化,我看到一堆这样的字符串:
Peanut Butter \u0026 Jelly
Run Code Online (Sandbox Code Playgroud)
我尝试这样做:
string results = resultFromJsonSerialization();
results = results.Replace("\u0026", "&");
return results;
Run Code Online (Sandbox Code Playgroud)
我希望它变成:
Peanut Butter & Jelly
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有进行替换。在 C# 中进行此替换的正确方法是什么?
我有一个asp.net-mvc应用程序(SQL Server后端)和一个跟踪采购订单的基本CRUD Web应用程序.其中一项功能是订阅订单,因此如果有人进行任何更改,您会收到电子邮件通知.在更新提交到数据库之后和之后,我在表单发布后触发电子邮件通知.
问题是,有一天,单个订单上有大量更新,一个人在一天内收到24封电子邮件更新.用户要求他每天只收到1封电子邮件,其中包含所有更改的摘要.这似乎是一个合理的请求,我在其他情况下看到了这一点(每天或每周发送一次批量通知),但我正在努力找出构建这个的最佳方法.我知道我需要坚持用户设置他们想要如何接收更新,但之后我可以:
由于我在其他地方看到过这种情况,我认为可能会有推荐的模式或建议来支持这一点.
c# ×4
jquery ×4
asp.net-mvc ×3
javascript ×2
ajax ×1
browser-bugs ×1
collections ×1
email ×1
generics ×1
html ×1
html-table ×1
http-post ×1
interface ×1
jquery-ui ×1
linq ×1
nhibernate ×1
replace ×1
sql-server ×1
trello ×1