我可以得到家,os.path.expanduser("~")但有一个标准的方式来获取配置目录?像~/.config大多数unices,或$XDG_CONFIG_HOMEin(最近?)Linux和C:\Users\<user>\AppData\Local\RoamingWindows中的值等等
我正在尝试将多个选定的行从一个 DataGrid 拖动到另一个 DataGrid。为此,我使用MouseMove如下事件处理程序:
private void Distribution_MouseMove(object sender, MouseEventArgs e)
{
base.OnMouseMove(e);
if (e.LeftButton == MouseButtonState.Pressed)
{
var dg = sender as DataGrid;
if (dg == null) return;
if (dg.SelectedItems.Count == 0) return;
Point p = e.GetPosition(this);
HitTestResult result = VisualTreeHelper.HitTest(this, p);
var obj = result.VisualHit;
while (VisualTreeHelper.GetParent(obj) != null && !(obj is DataGridRow))
{
obj = VisualTreeHelper.GetParent(obj);
}
if (obj == null) return;
var row = obj as DataGridRow;
if (row == null) return;
if (dg.SelectedItems.Contains(row.DataContext))
{ …Run Code Online (Sandbox Code Playgroud) 我正在使用一个Kendo UI网格,该服务要求POST请求将行更新为JSON字符串而不是URL编码形式.
我的网格dataSource配置如下所示:
dataSource: new kendo.data.DataSource({
transport: {
read: "/Service.svc/instructors",
update: {
url: "/Service.svc/instructors",
type: "POST",
contentType: "application/json; charset=utf-8",
data: function (data) {
return kendo.stringify(data);
}
}
},
//...
});
Run Code Online (Sandbox Code Playgroud)
然而,请求的主体最终看起来像这样:
0=%7B&1=%22&2=I&3=d&4=%22&5=:&6=%20&7=1&8=,&9=%20&10=%22&11=F&12=o&13=o&14=%22&15=:&16=%20&17=%22&18=f&19=o&20=o&21=%22&22=,&23=%20&24=%22&25=B&26=a&27=r&28=%22&29=:&30=%20&31=%22&32=b&33=a&34=r&35=%22&36=%7D&Id=1&Foo=foo&Bar=bar
Run Code Online (Sandbox Code Playgroud)
一个编码的json对象({"Id": 1, "Foo": "foo", "Bar": "bar"})(它是什么编码,顺便说一下?)加上表单数据.
直接用jQuery做它可以正常工作:
$.ajax({
type: "POST",
url: "/Service.svc/instructors",
data: kendo.stringify({Id: 1, Foo: "foo", Bar: "bar"}),
contentType:"application/json; charset=utf-8",
dataType: "json",
success: function(data) { console.log(data);}
});
Run Code Online (Sandbox Code Playgroud)
根据文档,我应该能够将更新设置为函数并调用它,但显然自2012年以来这没有用.
如何让Kendo发布正确的数据?