下面的代码迭代6个输入按钮,并将onclick事件附加到每个按钮,以警告相应迭代的索引号:
for (var i = 1; i < 6; ++i) {
var but = document.getElementById('b_' + i);
(function (el) {
var num = i;
but.onclick = function () {
alert(num);
};
})(but);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,在每次迭代中都有一个自调用函数,它创建一个范围来存储该范围内的迭代索引.
我一直使用这种类型的模式来附加依赖于在迭代期间更改的变量的事件.
任何人都可以向我解释为什么上述工作,以及如何num在范围内捕获变量?
另外,上面使用的自调用函数是closure?
有这样的团体;
USER_ID SEQ_ID NAME
1 2 Armut
1 3 Elma
1 4 Kiraz
2 1 Nar
2 2 Uzum
4 3 Sheftali
4 4 Karpuz
4 5 Kavun
Run Code Online (Sandbox Code Playgroud)
选择查询后,我只想看到;
USER_ID SEQ_ID NAME
1 2 Armut
2 1 Nar
4 3 Karpuz
Run Code Online (Sandbox Code Playgroud)
也就是说,我想要每个USER_ID具有最小SEQ_ID的行.什么SQL查询会给我这个结果?
最好的祝福
需要从MS-Excel和MS-Access中的韩语单词中提取初始字符.当我使用Left("한글",1)时,它将返回第一个音节,即한,我需要的是初始角色,即ㅎ.有这个功能吗?或者至少是成语?
如果您知道如何从String中获取Unicode值,我可以从那里开始工作,但我相信我会重新发明轮子.(再次)
我可以在Unicode中看到一些重复的字符.例如,字符"C"可以由代码点U + 0043和U + 0421表示.为什么会这样?
我以前认为WM_CREATE是窗口收到的第一条消息.但是,在顶级窗口上测试此假设时,结果却是错误的.在我的测试中,WM_MINMAXINFO显示为第一条消息.
那么,窗口保证收到的第一条消息是什么?
有一种优雅的方法,将预定义的dataGridView列与SQL语句的结果绑定在一起吗?
例:
dataGridView1.Columns.Add("EID", "ID");
dataGridView1.Columns.Add("FName", "FirstName");
Run Code Online (Sandbox Code Playgroud)
有些SQL喜欢
SELECT t.FirstName AS FName, t.EmpID AS EID
FROM table t ...
Run Code Online (Sandbox Code Playgroud)
然后我打电话
dataGridView1.DataSource = someDataSet.Tables[0].DefaultView;
Run Code Online (Sandbox Code Playgroud)
最后一次调用将列添加到我的数据网格中,但我只想按列名绑定它而不是添加新列.
该示例将给出如下结果:
表列:ID,FirstName,FName,EID(ID和FirstName包含空单元格)
怎么弄这个:
Table columns: ID, FirstName or FirstName, ID
Run Code Online (Sandbox Code Playgroud)
最好的祝福!
我正在开发的内部应用程序在Windows 7(64位)PC上表现得很奇怪.
如果我创建一个PrintDialog的实例,并调用它的ShowDialog()方法,该方法立即返回DialogResult.Cancel而不显示打印机对话框窗体.
Windows 7 PC确实安装了打印机(带有可用的默认打印机).
PrintDialog printDialog = new PrintDialog();
printDialog.PrinterSettings.Copies = 2;
printDialog.AllowCurrentPage = false;
printDialog.AllowPrintToFile = false;
printDialog.AllowSelection = false;
printDialog.AllowSomePages = false;
DialogResult dialogResult = printDialog.ShowDialog(this);
if (dialogResult == DialogResult.Cancel)
return;
Run Code Online (Sandbox Code Playgroud)
任何线索为什么会发生这种情况?
使用C#(.NET 2.0),在网络目录中检索文件列表的最佳方法是什么,优先选择按上次写入时间排序,还是根据上次写入时间排除返回值?
我目前正在使用DirectoryInfo实例的GetFiles方法返回一个列表.我遇到的目录可以包含超过6,000个文件,只需要获取一个FileInfo数组就需要大约25秒.
WMI不起作用,我看不到任何其他以.NET为中心的东西,这将有助于这种情况.我错过了什么吗?有没有比使用GetFiles更好的解决方案?
谢谢.
我想从字符串的末尾修剪一个\字符.这是怎么做到的?
MyString.Value.TrimEnd('\');
Run Code Online (Sandbox Code Playgroud)
简单不起作用,并在常量错误中产生换行符,请帮忙
c# ×3
.net ×2
unicode ×2
closures ×1
codepoint ×1
data-binding ×1
datagridview ×1
datatable ×1
dataview ×1
deprecated ×1
excel ×1
file ×1
javascript ×1
min ×1
ms-access ×1
php ×1
printdialog ×1
printing ×1
scope ×1
select ×1
sql ×1
vba ×1
winapi ×1
windows-7 ×1
winforms ×1