小编gyo*_*fov的帖子

选择click react-table上的行

我正在尝试找到与我的反应应用程序一起使用的最佳表格,而现在,react-table提供了我需要的一切(分页,服务器端控制,过滤,排序,页脚行).

话虽如此,我似乎无法选择一行.没有举例说明这一点.

我尝试过的一些事情包括尝试在点击行时设置className.但我似乎无法找到调用元素e也不t.此外,我不喜欢这种方法,因为反应应用程序不应该如何做事.

<ReactTable
            ...
            getTrProps={(state, rowInfo, column, instance) => {
                return {
                    onClick: (e, t) => {
                        t.srcElement.classList.add('active')
                    },
                    style: {
                    }
                }
            }}
        />
Run Code Online (Sandbox Code Playgroud)

一些可能的解决方法是将复选框渲染为第一列,但这不是最佳选择,因为它限制了单击以"激活"该行的区域.此外,视觉反馈将不那么富有表现力.

我在房间里想念大象吗?如果没有,你知道另一个支持我之前描述过的东西的图书馆吗?

谢谢!

编辑: 另一种选择,这是开源,是建议编辑.也许这是正确的事情.

编辑2

另一件事,由DavorinRuševljan在评论中提出,但我无法使其发挥作用:

onRowClick(e, t, rowInfo) {
    this.setState((oldState) => {
        let data = oldState.data.slice();
        let copy = Object.assign({},  data[rowInfo.index]);

        copy.selected = true;
        copy.FirstName = "selected";
        data[rowInfo.index] = copy;

        return {
            data: data,
        }
    })
}

....

            getTrProps={(state, rowInfo, column) => {
                return …
Run Code Online (Sandbox Code Playgroud)

reactjs react-table

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

从Ajax表单加载的MVC4 WebGrid - 在排序和分页时多次调用Controller

我认为我有以下几点

@using (Ajax.BeginForm("Search", "Home", null,
                               new AjaxOptions
                                   {
                                       InsertionMode = InsertionMode.Replace,
                                       HttpMethod = "POST",
                                       UpdateTargetId = "gridContent",
                                   }, new { @class = "search" }))
{
    <input type="submit" value="Search" />
}
<div id="gridContent">
</div>
Run Code Online (Sandbox Code Playgroud)

这是返回/ Home/Search的内容

@model List<TestTable.Models.People>
@{
Layout = null;
}
@{
var grid = new WebGrid(Model, canPage: true, canSort: true, rowsPerPage: 5,             ajaxUpdateContainerId: "tableDiv"); grid.Pager(WebGridPagerModes.NextPrevious);
}
<div id="tableDiv">
    @grid.GetHtml(
        columns: grid.Columns(
        grid.Column("Name", " Name")
))
</div>
Run Code Online (Sandbox Code Playgroud)

这在MVC3中工作得很好,但MVC4会在每次新搜索时发送一个脚本,为每个分页和排序查询的每个提交按钮单击产生一个新的额外请求.以下是它的外观:

"http://localhost:59753/Home/Search".
"http://localhost:59753/Home/Search?sort=Name&sortdir=ASC&__swhg=1394297281115"
"http://localhost:59753/Home/Search". 
"http://localhost:59753/Home/Search?sort=Name&sortdir=ASC&__swhg=1394297284491"
"http://localhost:59753/Home/Search?sort=Name&sortdir=ASC&__swhg=1394297284490"
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决?提前致谢!

sorting ajax paging webgrid asp.net-mvc-4

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

jQuery 1.10.1在select上设置非现有值

有人可以解释这种行为:

<select id ="test">
       <option value="-1">---All---</option>
       <option value="1">first</option>
       <option value="2">second</option>
</select>

$('#test').val(200);
Run Code Online (Sandbox Code Playgroud)

使用jQuery 1.10.1,select的值为null,但使用jQuery 1.9.1时,该值是第一个选项.

的jsfiddle

javascript jquery select

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

“错误:57014:由于用户请求而取消语句”Npgsql

我在我的应用程序中遇到了这个幻象问题,其中特定页面(在 ASP.NET MVC 应用程序上)上的每 5 个请求中就有一个抛出此错误:

Npgsql.NpgsqlException: ERROR: 57014: canceling statement due to user request
   at Npgsql.NpgsqlState.<ProcessBackendResponses>d__0.MoveNext()
   at Npgsql.ForwardsOnlyDataReader.GetNextResponseObject(Boolean cleanup)
   at Npgsql.ForwardsOnlyDataReader.GetNextRow(Boolean clearPending)
   at Npgsql.ForwardsOnlyDataReader.Read()
   at Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb)
   ...
Run Code Online (Sandbox Code Playgroud)

在 npgsql github 页面上,我发现了以下错误报告:615

它在那里说:

不管 Dapper 到底发生了什么,在取消命令时肯定存在竞争条件。部分原因是设计使然,因为 PostgreSQL:取消请求是完全“异步的”(它们通过不相关的套接字传递,而不是作为要取消的连接的一部分),并且您不能限制取消生效仅在特定命令上。换句话说,如果您想取消命令 A,则在您发送取消时,命令 B 可能已经在进行中,它将被取消。

尽管他们在 Npgsql 3.0.2 中进行“希望使取消更安全的更改”,但我当前的代码与此版本不兼容,因为这里描述了迁移的需要。

我目前的解决方法(愚蠢):我已经评论了 Dapper 中的代码,command.Cancel();问题似乎消失了。

if (reader != null)
                {
                    if (!reader.IsClosed && command != null)
                    {
                        //command.Cancel();
                    }
                    reader.Dispose();
                    reader = null;
                }
Run Code Online (Sandbox Code Playgroud)

有没有更好的解决问题的方法?其次,我在当前修复中丢失了什么(除了每次更新 …

postgresql command npgsql dapper

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

已有文件System.IO.Path.GetRandomFileName()的概率

最近我得到了例外:

Message:
System.IO.IOException: The file 'C:\Windows\TEMP\635568456627146499.xlsx' already exists.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
Run Code Online (Sandbox Code Playgroud)

这是我用于生成文件名的以下代码的结果:

Path.Combine(Path.GetTempPath(), DateTime.Now.Ticks + ".xlsx");
Run Code Online (Sandbox Code Playgroud)

在意识到可以在一个Tick中创建两个文件之后,我将代码更改为:

Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".xlsx");
Run Code Online (Sandbox Code Playgroud)

但我仍然想知道新案件中上述例外的可能性是多少?

.net c# random filenames file

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

约会时间?AddDays扩展方法

我想编写一个扩展方法,将一天添加到Nullable DateTime,但修改日期本身.

我想用它如下:

someDate.AddOneDay();
Run Code Online (Sandbox Code Playgroud)

这直接改变了someDate的值.

我最初写的代码是:

public static DateTime? AddOneDay(this DateTime? date)
{
    if (date.HasValue)
    {
        date.Value = date.Value.AddDays(1);
    }

    return null;
}   
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为引用已更改,因此以这种方式调用它不会更改someDate的值.

有没有办法实现这一点,并避免像以下代码:

someDate = someDate.AddOneDay();
Run Code Online (Sandbox Code Playgroud)

此外,我正在考虑DateTime属性的一些setter,但他们没有任何..

public int Day { get; }
public int Month { get; }
public int Year { get; }
Run Code Online (Sandbox Code Playgroud)

c# extension-methods datetime

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