我在一个页面上有2个数据表,如下例所示:http://live.datatables.net/ocasik/
在我的页面顶部,我有一个链接,允许将行从一个表移动到另一个表.
每次我移动行我都想重新计算页脚.
这有效,但当我添加fnFooterCallback到dataTable初始化时,我无法隐藏第一个表中的列.
例如:尝试fnFooterCallback从代码中删除并运行示例.现在显示/隐藏链接工作正常(它隐藏7列并显示1).
以某种方式fnFooterCallback导致列显示/隐藏的问题.
编辑:
我从我的样本中删除了不必要的数据.
这是我的演示代码的简单版本:http://live.datatables.net/umafuz/
这是我的fnFooterCallback功能:
"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
var iTotal = [0,0,0];
for ( var i=0 ; i<aaData.length ; i++ )
{
iTotal[0] += aaData[i][3];
iTotal[1] += aaData[i][2];
iTotal[2] += aaData[i][3];
}
var nCells = nRow.getElementsByTagName('th');
nCells[1].innerHTML=iTotal[0];
nCells[2].innerHTML=iTotal[1];
nCells[3].innerHTML=iTotal[2];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
col[1]/sum(col[1])现在我到处都有'10%',但我需要在每次添加/删除行时计算它.我正在尝试从特定用户那里获取Exchange的未读电子邮件数量.
我可以从收件箱中获得大量电子邮件,如下所示:
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
ItemView view = new ItemView(int.MaxValue);
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, sf, view);
int unreadCount = 0;
foreach (EmailMessage i in findResults)
{
unreadCount++;
}
label1.Text = unreadCount.ToString();
Run Code Online (Sandbox Code Playgroud)
这非常有效.
我也可以让所有子文件夹都是收件箱:
FindFoldersResults findResults1 = service.FindFolders(
WellKnownFolderName.Inbox,
new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep });
foreach (Folder folder in findResults1.Folders)
{
Console.WriteLine(folder.DisplayName);
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法将这两者结合在一起.
我知道我可以做嵌套的foreach循环,但我想避免这种情况.
我发现了这些问题:所有文件夹中的Exchange Web服务(EWS)FindItems,但它至少需要使用Outlook 2010才能创建AllItems文件夹.
我知道我可以创建SearchFilterCollection,但是如何添加规则以便它在Inbox和所有子文件夹中搜索未读的电子邮件?
编辑:
这是我到目前为止尝试做的事情:
private int getEmailCount()
{
int unreadCount = 0; …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个对象来负责读取所有用户访问设置。
我已经创建了这样的类:
public class SettingsManager
{
private static string _connString =
@"Data Source=MyDB;Initial Catalog=IT;Integrated Security=True;Asynchronous Processing=true;";
private const string _spName = "SettingTest";
private IEnumerable<string> _mySettings;
private static readonly Lazy<SettingsManager> _instance = new Lazy<SettingsManager>(() => new SettingsManager());
private SettingsManager()
{
//Console.WriteLine("Hello from constructor");
if (_mySettings == null)
_mySettings = ReadSettings();
}
public static SettingsManager Instance
{
get { return _instance.Value; }
}
public bool CanDo(string setting)
{
return _mySettings.Contains(setting);
}
private IEnumerable<string> ReadSettings()
{
try
{
using (var conn = new …Run Code Online (Sandbox Code Playgroud) 我有一些数据是通过安装在汽车中的GPS设备收集的.所以我的数据基本上是在街道/道路上/周围.每个坐标都有一定的价值.数据的格式是这样的.
lat | long | value
---------------------------------
12.979155 | 77.644925 | 6
---------------------------------
12.97916833 | 77.64493667 | 2
---------------------------------
12.97917167 | 77.64492167 | 8
Run Code Online (Sandbox Code Playgroud)
我的任务是在谷歌地图上绘制这些lat-long.当我们谈论放置10个,100个或1000个标记时,这似乎是一件非常容易的事.但正如我上面提到的,我们正在通过驱动器收集数据,并且两个长度或两个点之间的距离将是几个脚(例如2-3英尺).
所以在调查结束时,对于一个城市的一小部分,我将拥有90-100k纬度,而整个城市可能会达到100万.
我已经尝试添加9-10k标记和它的woking罚款,但当我尝试加载40k,50k,60k时,它使我的浏览器非常慢,这是我结束的错误消息.
Uncaught RangeError: Maximum call stack size exceeded main.js:1
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索它,但我无法找到任何示例或教程,这将导致我通过使用我熟悉的技术放置100万标记.(这是asp.net).找到这个例子http://www.scribblemaps.com/markerComplex/ 作者:Jonathan Wagner,但是我无法理解它并在我现有的代码中实现它.
//从MSSQL服务器获取lat-long.
function PushValues(ParameterID) {
a = ParameterID.slice(5);
var CityID = $('#ddlCity').val().split('|');
$.ajax({
type: "POST",
url: "index.aspx/PushLatLong",
data: "{CityID:'" + CityID[0] + "',OperatorID:'" + $('#ddlOperator').val() + "',ParameterID:'" + ParameterID.slice(4) + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false,
success: function …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用工具栏中的组合框构建网格,在网格中我将有一些关于员工的信息,并且组合将允许我选择我想加载这些信息的员工.
我很容易创建网格,但是工具栏中的组合框有问题:每次输入内容时它都会触发更改事件.
Ext.define('My.Grid.Combo', {
extend: 'Ext.form.ComboBox',
fieldLabel: 'Choose State',
store: states,
alias: 'widget.combostates',
queryMode: 'local',
displayField: 'name',
valueField: 'abbr',
forceSelection: true,
listeners: {
change: function (field, newValue, oldValue) {
console.log(newValue);
},
scope: this
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的演示:http://jsfiddle.net/Misiu/LTVXF/
将光标放在该组合内并开始输入.每次按键后该事件被触发(见控制台)
我想在用户从该复选框中选择有效元素(我正在使用forceSelection)后触发该事件(或其他,无关紧要).
我可以添加,editable: false,但我想在输入有效值的一部分后进行局部过滤.
我创建了一个允许用户输入一些文本的MessageBox:
Ext.MessageBox.show({
title : 'Reason',
msg : 'Your reson:',
width : 300,
buttons : Ext.MessageBox.OKCANCEL,
multiline : true,
scope : this,
fn : function(btn, reason){ if (btn == 'ok' && reason != '') this.rejectPlan(rec, reason);}
});
Run Code Online (Sandbox Code Playgroud)
用户看到它并允许输入他的原因,但现在我所能做的就是验证他输入的文本是否为空.
我想阻止OK按钮,直到用户输入一些文字(最少20个字符)
我可以在MessageBox中添加验证器,还是必须创建自定义组件扩展窗口?
我正在尝试连接2个日期选择器以允许用户选择日期范围.
我创建了这样的代码:
$(function() {
var dates = $("#fromDate, #toDate").datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
minDate: new Date(2010, 2 - 1, 2),
onSelect: function(selectedDate) {
var option = this.id == "fromDate" ? "minDate" : "maxDate",
instance = $(this).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
});
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我得到奇怪的错误:当我使用第一个输入选择日期一秒钟,datepicker显示第二个日期.我认为onSelect函数基于第二个datepicker以某种方式设置日期.
如果第一个datepicker的日期与第二个月相同,则不会显示此错误.
如何重新创建此行为:
这是我的jsFiddle:http://jsfiddle.net/Misiu/TyQSG/1/
我应该如何更改onSelect功能以删除此错误?
我正在尝试将多选插件添加到我的表单中.我已经设法使一切正常工作(http://jsfiddle.net/Misiu/t2qaP/),但我希望选择100%宽度.
我可以手工添加css:
.btn-group, .btn-group .multiselect {
width: 100% !important;
}
Run Code Online (Sandbox Code Playgroud)
但也许有更好的方法来使用bootstrap这样做?
这是我的演示:http://jsfiddle.net/Misiu/t2qaP/
我正在尝试为我的学校项目构建一个简单的用户设置功能.
我创建了一个这样的数据模型:
Ext.define('Urlopy.Model.UserPreferences', {
extend : 'Ext.data.Model',
idProperty : 'userID',
fields : [{
name : 'userID',
type : 'string'
}, {
name : 'admin',
type : 'bool'
}]
});
Run Code Online (Sandbox Code Playgroud)
和这样的商店:
Ext.define('Urlopy.Store.UserPreferences', {
extend : "Ext.data.Store",
autoLoad : false,
autoSync : true,
batch : false,
proxy : {
type : 'ajax',
sortParam : undefined,
startParam : undefined,
pageParam : undefined,
limitParam : undefined,
noCache : false,
headers : {
"Content-Type" : "application/json; charset=utf-8"
},
api : {
read : 'services/UserPreferences.asmx/Get',
update …Run Code Online (Sandbox Code Playgroud) 我有使用EPPlus将所有记录从SQL表保存到excel工作表的函数.如果我导出少量数据一切正常,但有200多列和500 000多行我得到OutOfMemory异常.
我想修改我的代码,以便能够为每个文件保存50 000条记录.
这是我的代码适用于小数据:
private Task SaveAsync(string tableName)
{
return Task.Run(() =>
{
try
{
using (var conn = new SqlConnection(_connectionString))
{
using (var cmd = new SqlCommand(string.Format(DataQuery, tableName), conn))
{
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 360;
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
var fileName = string.Format(TargetFile, tableName);
if (File.Exists(fileName))
{
File.Delete(fileName);
}
sdr.Read();
var numberOfRecordsInTable = sdr.GetInt32(0);
sdr.NextResult();
using (ExcelPackage pck = new ExcelPackage(new FileInfo(fileName)))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Results");
int count = sdr.FieldCount;
int col = …Run Code Online (Sandbox Code Playgroud)