小编Yis*_*ski的帖子

在DataGrid ItemsSource更改后保持Focus/SelectedItem

我已经在这方面工作了几天,但似乎无法想出一个解决方案

我有一个计时器上的代码,DataGrid每隔几秒刷新一次

我尝试了很多刷新选项,但最终他们都失去了用户的注意力,有时也失去了 SelectedItem

继承我的代码:

        AddHandler bw.RunWorkerCompleted, Function(sender As Object, e As ComponentModel.RunWorkerCompletedEventArgs)
                                              Dim lst = e.Result
                                              Dim lst2 = CType(lst, List(Of Object)).OfType(Of INotifyPropertyChanged)()
                                              'If Items.Count = 0 Then
                                              Dim a = SelectedItem
                                              Collection.Clear()
                                              Collection.AddRange(lst2)
                                              SelectedItem = a
                                              'ItemsSource = lst
                                              'End If
                                              'For Each rw In lst
                                              '    Dim mtch = Collection.Where(Function(x) x.GetHashCode = rw.GetHashCode)

                                              'Next
Run Code Online (Sandbox Code Playgroud)

我留下了评论,所以你可以看到我尝试的不同方法

结果:

如果我直接设置ItemsSource,结果(如注释),那么SelectedItemKeyboard.FocusedElement保持稳定,直到上面的代码中结束,但是这个代码的结束和下一个节拍,他们都变成了介于两者之间Nothing

如果我一起去,ObservableCollection那么SelectedItem一旦我清除了收集Keyboard.FocusedElement就失去了,并且只在蜱之间的某个时间丢失.尽管可以使用临时支持变量在此处保留SelectedItem

所以关键是我们如何在保持(最重要的)键盘焦点的同时刷新数据库中的项目

是的,我知道ObservableCollections不会被"重置".事实上,我真的不想使用它.它只有一个保持 …

wpf datagrid focus refresh itemssource

9
推荐指数
1
解决办法
2441
查看次数

如何通过Tor制作httpwebrequest

我试图通过tor代理提出请求

myRequest.Proxy = New WebProxy("127.0.0.1", 8118)
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误 Unable to connect to the remote server

而内在的例外是 No connection could be made because the target machine actively refused it 127.0.0.1:8118

我的阅读显示这可能是防火墙问题,所以我完全关闭了Windows FW,我也暂时禁用了我的AVG AV.我没有任何其他保护意识

为了好的衡量,我也尝试了9050和9051作为端口号,但这没有帮助

Tor浏览器正在运行,所以我想我的代码也可以运行.我如何设置代理使用Tor.

顺便说一句,"8118"是内存不足,我找不到任何关于我应该用作代理的端口的文档

也许我的托尔会被别的什么?

太感谢了!

编辑

关于私有化:

在过去(大约一年前或更长时间)我只是下载tor,然后添加8118作为代理,所有工作.现在它没有.也许改变了什么?

所以我现在按照CodeCaster的建议下载了privoxy,现在当tor和privoxy都运行时,请求工作,但是,我担心它没有使用tor代理,因为响应回来就像服务器识别我一样

你知道吗?为什么过去我没有必要下载privoxy,现在必须下载并启用它?

谢谢

编辑#2: 测试

我现在做了一个简单的测试功能,如下所示:

    Function ExternalIP(Optional Proxy As Integer? = Nothing) As String
        Dim webClient = New WebClient
        webClient.Headers.Add("Cache-Control", "max-age=0")
        If Proxy.HasValue Then webClient.Proxy = New WebProxy("127.0.0.1", Proxy.Value)
        Dim ip = webClient.DownloadString("http://myip.ozymo.com/")
        webClient.Dispose()
        Return ip
    End Function
Run Code Online (Sandbox Code Playgroud)

当没有通过代理使用时,我回到我的常规真正的IP.到现在为止还挺好

当我使用8118作为代理时,它取决于: …

.net proxy httpwebrequest tor

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

如何用aliexpress api购买物品

我正在研究aliexpress api和其他第三方选项.

我似乎找不到任何自动购买的选择.我搜索过API以及谷歌搜索其他供应商或选项.他们大多只有目录下载,价格更新等.

有没有人知道通过api从aliexpress实际购买/订购/购买产品的方法?

谢谢

api e-commerce

6
推荐指数
0
解决办法
1478
查看次数

没有孩子的xslt副本

嗨,我有一个看起来像这样的站点地图xml文档

<pagenode title="home" url="~/" fornavbar="true">
 <pagenode title="admin" url="~/admin" fornavbar="false">
  <pagenode title="users" url="~/admin/users" fornavbar="false"/>
  <pagenode title="events" url="~/admin/events" fornavbar="true"/>
 </pagenode>
 <pagenode title="catalog" url="~/catalog" fornavbar="true"/>
 <pagenode title="contact us" url="~/contactus" fornavbar="false"/>
</pagenode>
Run Code Online (Sandbox Code Playgroud)

现在我想检索导航栏的xml文档,其中包含所有具有fornavbar = true的页面节点.如何才能做到这一点?

到目前为止我能得到的最接近的是:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="pagenode[@fornavbar='true']">
  <xsl:copy-of select="."/>
 </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

这个问题包括任何匹配为navbar的孩子

我只想复制所有属性,而不是所有孩子

但如果我试试

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="pagenode[@fornavbar='true']">
  <pagenode title="{@title}"  url="{@url}"/>
  <xsl:apply-templates/>
 </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

那我有两个问题

  1. 我可能会分别输入每个属性,每页都有很多属性,最终它们很容易改变
  2. 它失去了等级制度.一切都变得平坦

我会感谢所有和任何帮助.

谢谢!

编辑:id喜欢看的样本输出

<pagenode title="home" url="~/" fornavbar="true">
 <pagenode title="events" url="~/admin/events" fornavbar="true"/>
 <pagenode title="catalog" url="~/catalog" fornavbar="true"/>
</pagenode>
Run Code Online (Sandbox Code Playgroud)

xslt attributes nodes

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

ResponseFormat.Json返回xml

我知道我不是第一个遇到这个问题,但我似乎无法找到一个有效的解决方案

当使用webservice set返回json时,.net仍然将它包装在XML包装器中.

我搜索并尝试了很多东西

  1. 我尝试在我的web.config中添加各种httphandler设置,如某些帖子所示,但这些没有效果.我也不认为它是必要的,因为我正在开发一个全新的win7/iis7.5/.net4盒子.我读到.net 3.5以后应该没有任何问题.但是还有!
  2. 我尝试使用和不使用responseformat.json装饰.我的webservice返回有效的json(我可以在提取字符串后用parsejson解析它)
  3. 我尝试显式设置contenttype和datatype.这导致错误抱怨响应无效json.哪个是对的!

发生的事情非常令人困惑,在IE中,至少在我的devbox上,响应作为xml文档返回,我可以使用msg.text并轻松获取json字符串,但在生产中我在FF中测试并返回为文档,没有"文本"属性.

继承人我的javascript/jquery

$.ajax({
error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status+'-'+xhr.statusText);
    alert(thrownError);
    },
    url: '<%=ResolveUrl("~/WebService.asmx")%>' + "/JackJill",
    contentType: "application/json",
    success: function (msg) {
        alert(msg.d); 
    }
});
Run Code Online (Sandbox Code Playgroud)

所以:我怎么能简单地要求.net返回一个有效的常规json字符串,而不是包装它.我相信这将解决所有问题.它还将使我的服务更容易为整个世界所用,因此他们不必进行任何特殊的解析.

非常感谢您的任何建议或指示

诚挚

编辑: 继承了我刚测试的示例Web服务:

<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> <WebMethod()> Public Function JackJill() As String
    Return "[{""Name"":""Jack""},{""Name"":""Jill""}]"
End Function
Run Code Online (Sandbox Code Playgroud)

然后当我把它放在浏览器中

HTTP://本地主机:81/webservice.asmx/JackJill

我明白了

<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://tempuri.org/">
[{"Name":"Jack"},{"Name":"Jill"}]
</string> 
Run Code Online (Sandbox Code Playgroud)

为什么所有这些xml都在这里?

.net json web-services

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

session_start中的asp.net response.redirect不起作用

我有一个简单的Session_Start代码,如下所示:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
    Dim sid = Session.SessionID
    Response.Redirect("~/Blog.aspx")
    dim dummy=4/0
End Sub
Run Code Online (Sandbox Code Playgroud)

它没有按预期工作.通常在我的整个站点中,每当Response.Redirect()调用它时,它也会终止代码执行.而在这里,即使页面最终重定向,该dim dummy=4/0行也会被执行.

这导致我在其他代码中出现问题Session_Start(),我建立在重定向是退出点的假设之上.

我也尝试endResponseResponse.Redirect(url, endResponse)重载方法中设置为truefalse但是这也不起作用.

asp.net session redirect response

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

ExecuteReader 比 SSMS 慢得多

我的问题始于Entity Framework查询执行速度非常慢(约 2 分钟)。所以我开始调查

同时,问题似乎也在标准中SqlConnection

我有一个非常简单的查询

SELECT 1 AS [C1], [Extent1].[OldReleaseID] AS [OldReleaseID], [Extent1].[ProductName] AS [ProductName], [Extent1].[Price] AS [Price], [Extent1].[DiscountAmount] AS [DiscountAmount], [Extent1].[DiscountRate] AS [DiscountRate], [Extent1].[AbsorbVat] AS [AbsorbVat], [Extent1].[SerialCode] AS [SerialCode], [Extent1].[BrandName] AS [BrandName] FROM [dbo].[LocalSaleProductExts]() AS [Extent1]
Run Code Online (Sandbox Code Playgroud)

当我运行它时,SSMS它会在 0-1 秒内执行并返回大约 30k 行

同样的精确查询在 .net 中运行ExecuteReader大约 100 秒!

在线研究基本上指出了 2 个解决方案:ARITHABORT 和参数嗅探,所以为了好玩,我将所有这些添加到 SSMS 中

DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE
SET ARITHABORT OFF
Run Code Online (Sandbox Code Playgroud)

还有0-1秒。

在我的代码中我添加了SET ARITHABORT ON. 这是我的简单代码

Using sc = New SqlClient.SqlConnection("data …
Run Code Online (Sandbox Code Playgroud)

sql-server ssms sqlconnection executereader

5
推荐指数
0
解决办法
663
查看次数

如何授予查看执行日志的权限

我在 Google Apps 脚本中有一个项目。我给了我的同事“编辑”权限。现在他看到了处决名单。但是当他单击特定行时,他会收到以下消息:

您无权访问日志

向项目所有者请求查看日志的权限。

我怎样才能让他完全控制和访问他在脚本控制台中可能需要的一切?

启用 Chrome V8 运行时

谢谢!

permissions logging google-apps-script

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

windbg cant load sos clr

我不确定windbg是否是正确的工具,但这就是我现在正在尝试的

我的asp.net应用程序似乎有一个内存泄漏,几乎每次页面加载时它都会继续增长大约3 MB(然后它又会回落......)

我想阅读整个进程内存,看看存储的确切内容是不必要的.

所以我运行windbg,附加到webserver40.exe进程

然后我试试

.loadby sos clr
Run Code Online (Sandbox Code Playgroud)

我明白了

对LoadLibrary(C:\ Windows\Microsoft.NET\Framework\v4.0.30319\sos)的调用失败,Win32错误0n193"%1不是有效的Win32应用程序".

请检查调试器配置和/或网络访问.

看来我在Framework AND Framework64中有这个sos.dll

我试过两个使用

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos
Run Code Online (Sandbox Code Playgroud)

但没有任何负担

我不明白为什么它寻找一个虚拟32位应用程序.即时通讯64位PC,64位窗口.

如何加载这个sos的东西?

当我开始时,我得到这个警告

警告:进程7240未作为调试对象附加可以检查进程,但不会收到调试事件

我也尝试过loadby sos mscorwks它不起作用,但据我所知,已停止使用.我在asp.net 4

我还在某处读到了代码应该在加载sos之前在调试中停止,这只是挂起VS 2010.

非常感谢你.

再说一次,如果有另一种工具可以更好地帮助我,我全都耳朵:-)

memory asp.net debugging windbg sos

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

itext获取内容大小

我只花了几个小时在网上搜索.似乎其他人也有这个问题,但我找不到答案.

我有一大堆PDF文件,我需要他们的测量,即他们的高度和页面内容.

在Adobe Illustrator中,导入PDF时,您可以选择转到"边界框".这正是我需要的.

我尝试了很多方法,这里是大杂烩:

Dim pdfStream = IO.File.OpenRead(FilePath)
Dim img = PdfImages(pdfStream)
Dim pdfReader = New PdfReader(pdfStream)
Dim pdfDictionary = pdfReader.GetPageN(1)
Dim mediaBox = pdfDictionary.GetAsArray(PdfName.MEDIABOX)
Dim b = pdfReader.GetPageSize(pdfDictionary)
Dim ms = New MemoryStream
Dim document = New Document(pdfReader.GetPageSizeWithRotation(1))
Dim writer = PdfWriter.GetInstance(document, ms)
document.Open()
document.SetPageSize(pdfReader.GetPageSize(1))
document.NewPage()
Dim cb = writer.DirectContent
cb.Clip()
Dim pageImport = writer.GetImportedPage(pdfReader, 1)
pdfReader.Close()
pdfStream.Close()
Run Code Online (Sandbox Code Playgroud)

我设法得到的只是页面大小,这是没用的.我在一大堆PDF上试过这个,所以它不像一个腐败的文件或其他东西.

pdf size itextsharp

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