小编Ada*_*kis的帖子

使用jQuery的数据属性

我有这个按钮:

<button type="button" class="themeChanger" data-themeValue="grid" value="Grid">
   <img src="templateImages/Icon_200.png" />                
</button>
Run Code Online (Sandbox Code Playgroud)

而这个jQuery:

$(".themeChanger").click(function () { 
    alert($(this).attr("data-themeValue")); 
    alert($(this).data("themeValue")); 
});
Run Code Online (Sandbox Code Playgroud)

由于某种原因,第一个警报显示"网格"应该像它应该,但第二个警告显示未定义.有什么东西让我感到愚蠢吗?

jquery

19
推荐指数
3
解决办法
2万
查看次数

点击触发Mouseleave

我有一个绝对定位的div,我试图跟踪鼠标何时移动它以及鼠标何时离开.不幸的是,单击框中的文本偶尔会触发mouseleave事件.

演示:js小提琴

我怎么能阻止这个?

JS

let tooltip = document.createElement('div');
tooltip.innerHTML = 'HELLO WORLD';
tooltip.setAttribute('class', 'tooltip');
tooltip.style.display = 'none';

tooltip.onclick = evt => {
    console.log('click')
    evt.stopPropagation();
}
tooltip.ondblclick = evt => {
    console.log('double click')
    evt.stopPropagation();
}

tooltip.onmouseenter = () => {
    console.log('tooltip mouse OVER');
}

tooltip.onmouseleave = () => {
    console.log('tooltip mouse OUT')
}

tooltip.style.left = '290px';
tooltip.style.top = '50px';
tooltip.style.display = 'block';
document.body.appendChild(tooltip);
Run Code Online (Sandbox Code Playgroud)

HTML

<div style="width: 300px; height: 300px; background-color: lightblue">

</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.tooltip {
    position: absolute;
    /*display: none;*/
    left: …
Run Code Online (Sandbox Code Playgroud)

javascript dom google-chrome mouseevent

19
推荐指数
2
解决办法
3702
查看次数

表达树和可空类型

我一直在玩表达树.我有以下简单的方法,通过动态创建表达式树来执行查询.ItemType是数据库中的可空int,也是EF实体类中的可空int .出于某种原因虽然查询引发了错误

未处理的异常:System.InvalidOperationException:没有为类型'System.Nullable`1 [System.Int32]'和'System.Int32'定义二进制运算符Equal.

我不认为我要求EF转换任何东西.我把我的参数定义为int?,这是我认为它应该是.

注意,我看过这个

在表达式树中使用可空类型

但是这个家伙正试图传递他作为对象输入的可以为空的int值,我猜这个EF有问题.我实际上是从头开始宣布这是正确的类型.

   public void GetResultCollection<T>() {
        MyEntities db = new MyEntities();
        var result = db.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name + "s"));

        int? ItemTypeValue = 1;

        var param = Expression.Parameter(typeof(T));

        var lambda = Expression.Lambda<Func<T, bool>>(
            Expression.Equal(
                Expression.Property(param, "ItemType"),
                Expression.Constant(ItemTypeValue)),
            param);

        var list = result.Where(lambda).ToList();
    }
Run Code Online (Sandbox Code Playgroud)

编辑

我也试过 ItemTypeValue.Value - 同样的错误

c# entity-framework expression-trees

18
推荐指数
1
解决办法
7859
查看次数

用Fancybox显示div

点击一个按钮,我试图在一个奇特的盒子里显示一个简单的隐藏div.这是代码的作品:

$("#btnForm").fancybox({ content: $("#divForm").html() });
Run Code Online (Sandbox Code Playgroud)

但从我所读到的,这似乎并不是实现这一目标的标准方法.我尝试了以下各项,但没有成功:

$("#btnForm").fancybox({ href: "#divForm" });

$("#btnForm").click(function () {
    $.fancybox({ href: "#divForm" });
});

$("#btnForm").click(function () {
    $("#divForm").fancybox();
});
Run Code Online (Sandbox Code Playgroud)

有人能指出我如何正确使用这个实用程序吗?这是我的HTML:

    <input type="button" value="Load Form" id="btnForm" />

    <div id="divForm" style="display:none">
        <form action="tbd">
            File: <input type="file" /><br /><br />
            <input type="submit" />
        </form>
    </div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery fancybox

18
推荐指数
3
解决办法
10万
查看次数

Linq - 带点符号的左外连接

如何使用点表示法在linq中执行左外连接?

这是查询表达式:

var query = from u in db.Users
            join d in db.Defects on u.userID equals d.userID into defectsGroup
            from d in defectsGroup.DefaultIfEmpty()
            select new { u, d };
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

var query2 = db.Users.GroupJoin(db.Defects.DefaultIfEmpty(), 
                u => u.userID, 
                d => d.userID, 
                (user, defect) => new { user, defect });
Run Code Online (Sandbox Code Playgroud)

但缺陷显示的IEnumerable<Defect>不仅仅是公正Defect.我也尝试过:

var query2 = db.Users.GroupJoin(db.Defects, 
                u => u.userID, 
                d => d.userID, 
                (user, defect) => new { user, defect.DefaultIfEmpty() });
Run Code Online (Sandbox Code Playgroud)

这根本就不编译.所有在线示例似乎都使用(更清晰的)查询语法.

c# linq linq-to-entities

17
推荐指数
1
解决办法
5023
查看次数

<a>标签内的图像和文字

这是生成的html asp.net(删除了一些客户识别细节)

在Windows XP/IE 7中,单击图像不会执行任何操作.单击文本执行超链接.右键单击任意位置,然后选择open in new windowopen也可以.

在其他浏览器中,它都按预期工作.

是否有任何简单的任何人可以看到我可以做到这一点,以使其在IE7中正常工作?

<div id="hdrXXX">                      
            <a id="ctl00_XXX" title="XXX" class="hdrXXX" href="http://google.com" target="_blank">
                 <div style="float:left;display: block;"> 
                    <img id="ctl00_XXX" src="Images/XXX.png" style="border-width:0px;" />
                </div>
                <div style="float:left; display: block; padding:15px 0 0 0;"> 
                    <span id="XXX">Some text right here</span>

                </div>
            </a>  
       </div>  
Run Code Online (Sandbox Code Playgroud)

html css internet-explorer internet-explorer-7

17
推荐指数
1
解决办法
8万
查看次数

Webpack 2 - 代码拆分顶级依赖项

最终编辑

tl; dr决议这是不可能的.虽然下面的最佳答案确实有一些很好的信息.


考虑下面的代码,来自contacts.js.这是一个动态加载的模块,可以根据需要加载System.import到代码中的其他位置.

如果SharedUtil1还用于其他动态加载的模块System.import,我将如何从所有这些模块中SharedUtility1 排除,并且仅在第一次需要按需加载?

顶级System.importSharedUtil1都不行,因为我的出口依赖于它:出口只能被放置在一个模块的代码顶层,没有任何形式的回调.

Webpack可以实现吗?我的版本是2.0.7测试版.

import SharedUtil1 from '../../SharedUtilities/SharedUtility1';

class Contacts{
    constructor(data){
        this.data = data;
        this.sharedUtil1 = new SharedUtil1();
    }
}

export default Contacts;
Run Code Online (Sandbox Code Playgroud)

更新1

我认为捆绑加载器是我想要的,但是没有,它将你导入的模块转换为一个不同的函数,一旦它完成异步加载,你就可以通过回调来访问实际的模块.这意味着你不能透明地使模块X异步加载而不对代码进行重大更改,更不用说你回到最初描述的问题,如果你的顶级模块依赖于现在的异步加载依赖,没有办法导出它,因为导出必须在顶层.

Webpack中是否有办法表示依赖加载依赖关系X(如果需要),并且有任何导入的模块导入它以透明地等待导入过程?我认为这个用例对于任何远程大型应用程序都是必不可少的,因此我不得不认为我只是遗漏了一些东西.

更新2

根据彼得的回答,我试图让重复数据删除工作,因为commonChunk插件与端点之间共享代码有关,正如他所提到的,并且因为require.ensure将加载的代码放入回调中,从而阻止您使用export任何依赖于它的代码.

至于重复数据删除,contacts.js并且tasks.js都加载相同sharedUtil像这样

import SharedUtil1 from '../../sharedUtilities/sharedUtility1';

我试过运行webpack

webpack --optimize-dedupe

并且还通过添加

plugins: [
    new webpack.optimize.DedupePlugin()
] …
Run Code Online (Sandbox Code Playgroud)

javascript webpack webpack-2

16
推荐指数
2
解决办法
7510
查看次数

实体框架4中有太多左外连接?

我有一个产品实体,它有0或1个"BestSeller"实体.出于某种原因我说:

db.Products.OrderBy(p => p.BestSeller.rating).ToList();
Run Code Online (Sandbox Code Playgroud)

我得到的SQL有一个"额外的"外连接(下面).如果我添加第二个0或1关系,并按两者排序,那么我得到4个外连接.似乎每个这样的实体产生2个外连接而不是一个.LINQ to SQL完全按照您的预期运行,没有额外的连接.

有没有其他人经历过这个,或者知道如何修复它?

SELECT 
[Extent1].[id] AS [id], 
[Extent1].[ProductName] AS [ProductName]
FROM   [dbo].[Products] AS [Extent1]
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent2] ON [Extent1].[id] = [Extent2].[id]
LEFT OUTER JOIN [dbo].[BestSeller] AS [Extent3] ON [Extent2].[id] = [Extent3].[id]
ORDER BY [Extent3].[rating] ASC
Run Code Online (Sandbox Code Playgroud)

c# optimization entity-framework entity-framework-4

15
推荐指数
1
解决办法
2739
查看次数

DAO模式是否在.NET中广泛使用?

DAO数据访问对象是.NET中常用的模式吗?我一直使用DAO作为提供访问我的数据层的方法.例如,我可能在我的EntityFramework ObjectContext上有一个瘦接口,将我的所有ObjectSet暴露为IObjectSet.

然后,DAO将公开复杂查询,每个DAO都依赖于此接口.我可能有一个ProductDAO暴露像GetProductsOnSale()或的方法GetInfrequenlySoldProducts().然后我的控制器或演示者将使用这些方法,这些方法可能是虚拟的,以允许对单元测试的特定结果进行存根.

这是.NET中常用的习惯用法吗?出于某种原因,我在线使用此模式看到的绝大多数示例都基于Java.甚至 关于DAO最佳实践的这个问题也被标记为Java而不是C#.

使用来自其他社区的东西没有任何问题,我只是有点担心我身边的每个人都在以不同的方式做事......

.net c# dao

15
推荐指数
1
解决办法
2万
查看次数

使用反射检查IEnumerable <T>

编辑

这个问题的简单版本是,如果我有一些object o,我将如何检查o是否是某种IEnumerable<string> 用反射实现的类型?最初的问题更具体,但对上述问题的答案也同样好.对不起,如果我在这个问题上提供了太多细节

结束编辑

以下是一个人为的ValueInjecter POC.一切都很好,除了isCollectionMapping最底层的方法.当且仅当源和目标属性都是实现的任何对象时,我试图让它返回true IEnumerable<respectiveTypes>.

我试过IsAssignableFrom,也IsInstanceOfType,但既不似乎工作.

其他一切都有效,因为当我取消注释方法的第二行以明确检查名称"Children"的属性时,它工作正常.

注意 - 我知道此示例存在问题.也就是说,我正在试图检查任何旧的,IEnumerable<>但总是知道足以返回List<>; 在这一点上,它只是一个愚蠢的概念证明.

[TestClass]
public class UnitTest1 {

    [TestMethod]
    public void TestMethod1() {
        List<string> strings = new List<string>();

        Subject S = new Subject() {
            id = 1,
            SubjectName = "S1",
            Children = { new Subject() { id = 2, SubjectName = "S1a" },
                         new Subject() { id = 3, SubjectName = "S1b", …
Run Code Online (Sandbox Code Playgroud)

c# reflection valueinjecter

14
推荐指数
3
解决办法
1万
查看次数