我正在尝试找到与我的反应应用程序一起使用的最佳表格,而现在,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) 我认为我有以下几点
@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)
任何想法如何解决?提前致谢!
有人可以解释这种行为:
<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时,该值是第一个选项.
我在我的应用程序中遇到了这个幻象问题,其中特定页面(在 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)
有没有更好的解决问题的方法?其次,我在当前修复中丢失了什么(除了每次更新 …
最近我得到了例外:
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)
但我仍然想知道新案件中上述例外的可能性是多少?
我想编写一个扩展方法,将一天添加到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)