我有一个具有Nullable DateOfBirth属性的Person对象.有没有办法使用LINQ查询具有最早/最小DateOfBirth值的Person对象列表.
这是我开始的:
var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));
Run Code Online (Sandbox Code Playgroud)
Null DateOfBirth值设置为DateTime.MaxValue,以便将它们排除在Min考虑范围之外(假设至少有一个具有指定的DOB).
但对我来说,所有这一切都是将firstBornDate设置为DateTime值.我想得到的是与之匹配的Person对象.我是否需要编写第二个查询:
var firstBorn = People.Single(p=> (p.DateOfBirth ?? DateTime.MaxValue) == firstBornDate);
Run Code Online (Sandbox Code Playgroud)
或者有更简洁的方法吗?
我已经设置了一个jQuery UI模式对话框,以便在用户单击链接时显示.在该对话框div标签中有两个文本框(我只为简洁显示1的代码),它被更改为对焦点做出反应的jQuery UI DatePicker文本框.
问题是jQuery UI对话框('open')以某种方式触发第一个文本框具有焦点,然后触发datepicker日历立即打开.
所以我正在寻找一种方法来防止焦点自动发生.
<div><a id="lnkAddReservation" href="#">Add reservation</a></div>
<div id="divNewReservation" style="display:none" title="Add reservation">
<table>
<tr>
<th><asp:Label AssociatedControlID="txtStartDate" runat="server" Text="Start date" /></th>
<td>
<asp:TextBox ID="txtStartDate" runat="server" CssClass="datepicker" />
</td>
</tr>
</table>
<div>
<asp:Button ID="btnAddReservation" runat="server" OnClick="btnAddReservation_Click" Text="Add reservation" />
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var dlg = $('#divNewReservation');
$('.datepicker').datepicker({ duration: '' });
dlg.dialog({ autoOpen:false, modal: true, width:400 });
$('#lnkAddReservation').click(function() { dlg.dialog('open'); return false; });
dlg.parent().appendTo(jQuery("form:first"));
});
</script>
Run Code Online (Sandbox Code Playgroud) 有没有更容易/更快的方法来使用jQuery append添加元素:
如何获取$ selectors元素:
$container.append('<div class="selectors"></div>');
var $selectors = $('.selectors', $container);
Run Code Online (Sandbox Code Playgroud)
我试过了:
var $selectors = $container.append('<div class="selectors"></div>');
Run Code Online (Sandbox Code Playgroud)
但这使得$ selectors = $ container
也许这是最快/最好的方式.只是检查.
JSLint(打开onevar标志)正在标记我的一些javascript代码,其中包含以下内容:
Problem at line 5 character 15: Too many var statements.
我很乐意解决这些错误,但我想知道,我是为了性能而做,还是因为这只是一种不好的做法,并且更有可能在我的javascript代码中引入错误.onevar旗帜背后的原因是什么?
我确实查看了var关键字的JSLint文档,但没有具体说明为什么同一函数中的多个var语句都不好.
这是一个例子的尝试.解释代码如何只从1个var语句中受益:
function Test(arg) {
var x = arg + 1,
y = cache.GetItem('xyz');
if (y !== null) {
// This is what would cause the warning in JSLint
var request = ajaxPost(/* Parameters here */);
}
}
Run Code Online (Sandbox Code Playgroud) 如果我有
<input id="uploadFile" type="file" />
Run Code Online (Sandbox Code Playgroud)
标记和提交按钮,如何在IE6(及更高版本)中确定用户是否选择了文件.
在FF中,我只是这样做:
var selected = document.getElementById("uploadBox").files.length > 0;
Run Code Online (Sandbox Code Playgroud)
但这在IE中不起作用.
我想在一个碰巧有多个列的表行(tr标签)上叠加一个div(或任何可以工作的元素).
我尝试了一些似乎不起作用的方法.我在下面发布了我当前的代码.
我确实得到了一个叠加层,但不是直接在行上.我尝试将叠加层顶部设置为$ divBottom.css('top'),但这始终是'auto'.
那么,我是在正确的轨道上,还是有更好的方法呢?你可以看到,使用jQuery很好.
如果我在正确的轨道上,我如何正确放置div?offsetTop是否包含在包含元素,表中的偏移量,我需要做一些数学运算?还有其他问题我会遇到这个问题吗?
$(document).ready(function() {
$('#lnkDoIt').click(function() {
var $divBottom = $('#rowBottom');
var $divOverlay = $('#divOverlay');
var bottomTop = $divBottom.attr('offsetTop');
var bottomLeft = $divBottom.attr('offsetLeft');
var bottomWidth = $divBottom.css('width');
var bottomHeight = $divBottom.css('height');
$divOverlay.css('top', bottomTop);
$divOverlay.css('left', bottomLeft);
$divOverlay.css('width', bottomWidth);
$divOverlay.css('height', bottomHeight);
$('#info').text('Top: ' + bottomTop + ' Left: ' + bottomLeft);
});
});
Run Code Online (Sandbox Code Playgroud)
#rowBottom { outline:red solid 2px }
#divBottom { margin:1em; font-size:xx-large; position:relative; }
#divOverlay { background-color:Silver; text-align:center; position:absolute; z-index:10000; opacity:0.5; }
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<title>Overlay Tests</title> …
Run Code Online (Sandbox Code Playgroud)在ASP.NET AJAX ModalPopupExtender具有OnCancelScript
和OnOkScript
属性,但它似乎并不有一个OnShowScript
属性.我想指定每次弹出窗口时运行的javascript函数.
在过去的情况下,我设置TargetControlID
为一个虚拟控件并提供我自己的控件,首先执行一些JS代码,然后使用JS方法显示弹出窗口.但在这种情况下,我将显示客户端和服务器端代码的弹出窗口.
有人知道这样做的方法吗?
顺便说一下,我需要这个,因为我在模态中有一个文本框,我想制作一个TinyMCE编辑器.但是TinyMCE init脚本不适用于隐形文本框,因此我必须找到一种方法来在模式显示时运行它
如何使用-d参数中的curl.exe发送双引号char.我不想对双引号进行URL编码.由于-d数据需要用双引号括起来,我似乎无法使其工作.
或者是否有curl.exe的另一个标志,告诉它使用整个表单发布数据的文件内容?
我想知道是否有一个要侦听的DOM事件告诉我DOM元素移动时是重新定位还是在页面上调整大小.我不是在谈论被拖放的元素.一个例子是如果一个页面上有三个项目的列表,我使用JS从页面中删除前两个列表项之一(或隐藏它或其他),我想附加一个处理程序来运行时第三个列表项在页面中向上移动.
我正在使用jQuery,所以可以接受简单的javascript或jQuery答案.
也许在元素级别没有移动/位置/调整大小事件,所以如果有一个页面/ doc级别事件会告诉我页面被重新绘制,我可以检查是否需要再次调用一个函数?
背景
我在一个元素上放置了一个透明div,同时调用webservice来删除该元素.由于我需要绝对定位覆盖div,我希望它能够跟踪它最初覆盖的元素.实际上将其锚定到基本元素.
为简单起见,我想在页面的所有元素上启用jQuery UI工具提示小部件:
然后为某些元素或元素及其后代禁用它.但这似乎不起作用:
$(document).tooltip({ track: true });
$('#menu *[title]').tooltip({ disabled: true });
Run Code Online (Sandbox Code Playgroud)
我的$('#menu *[title]')
选择器似乎按照我的预期工作,获得所有具有#menu元素的title属性的后代元素.
那么为什么禁用选项不能.tooltip({ disabled: true });
在这些元素上禁用工具提示呢?有没有其他方法和/或更好的方法来实现这一目标?
javascript ×6
jquery ×4
html ×2
jquery-ui ×2
.net ×1
append ×1
asp.net ×1
asp.net-ajax ×1
c# ×1
css ×1
curl ×1
dom-events ×1
jslint ×1
linq ×1
overlay ×1
refactoring ×1
tooltip ×1
upload ×1
windows ×1