小编Mis*_*siu的帖子

隐藏列的jQuery DataTables不适用于fnFooterCallback

我在一个页面上有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%',但我需要在每次添加/删除行时计算它.

jquery datatables

5
推荐指数
1
解决办法
3195
查看次数

EWS从所有文件夹中获取未读电子邮件的数量

我正在尝试从特定用户那里获取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)

c# .net-3.5 exchangewebservices winforms

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

确保 Singleton 仅调用一次数据库查询

我正在尝试创建一个对象来负责读取所有用户访问设置。

我已经创建了这样的类:

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)

c# singleton

5
推荐指数
1
解决办法
1320
查看次数

谷歌地图上的100k或更多标记没有聚类

我有一些数据是通过安装在汽车中的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)

google-maps-api-3

5
推荐指数
1
解决办法
3237
查看次数

ComboBox在每个按键上触发更改事件

我正在尝试使用工具栏中的组合框构建网格,在网格中我将有一些关于员工的信息,并且组合将允许我选择我想加载这些信息的员工.

我很容易创建网格,但是工具栏中的组合框有问题:每次输入内容时它都会触发更改事件.

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,但我想在输入有效值的一部分后进行局部过滤.

extjs extjs4.2

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

Ext JS 4.1 MessageBox带有文本验证

我创建了一个允许用户输入一些文本的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中添加验证器,还是必须创建自定义组件扩展窗口?

extjs4 extjs4.1

4
推荐指数
1
解决办法
4454
查看次数

jQuery UI 2日期选择器和范围选择

我正在尝试连接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的日期与第二个月相同,则不会显示此错误.

如何重新创建此行为:

  • 在第一个datepicker中选择"2010-02-05"(在您点击第二个月的日期和年份字段从第二个datepicker更改为月份和年份之后)

这是我的jsFiddle:http://jsfiddle.net/Misiu/TyQSG/1/

我应该如何更改onSelect功能以删除此错误?

jquery jquery-ui jquery-ui-datepicker

4
推荐指数
1
解决办法
9088
查看次数

Bootstrap 3多选插件作为表单元素

我正在尝试将多选插件添加到我的表单中.我已经设法使一切正常工作(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/

css css3 twitter-bootstrap twitter-bootstrap-3

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

Ext JS 4存储加载回调

我正在尝试为我的学校项目构建一个简单的用户设置功能.
我创建了一个这样的数据模型:

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)

json extjs4 extjs4.1

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

EPPlus将200万行数据表存储到多个excel文件中

我有使用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)

c# epplus .net-4.5 epplus-4

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