小编Gla*_*ius的帖子

使用WPF MVVM预加载/隐藏加载?

我有在WPF编码的控制,可以有三个子元素之一 - 两个SimpleChildElements和一个ComplexChildElement,让我们说 - 并根据模型中的一些幕后的逻辑,让我做他们的显示器之间的互换.

<ItemsControl
   ItemsSource="{Binding ChildPanels.Values}" 
   Name="ContentControl1"
   >
   <ItemsControl.ItemTemplate>
     <DataTemplate>
       <ContentControl Content="{Binding}"
          Visibility="{Binding Path=Active, Converter={StaticResource BooleanToVisibilityConverter}}"/>
     </DataTemplate>
   </ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

子元素是他们自己的ViewModel,我已经在上游声明了一些资源,因此有针对它们的DataTemplates.如果它有所帮助,我可以详细说明,但问题的关键因素是:

当我通过滚动在主控制元件和ComplexChildElement弹出的第一次,有一个短暂的,隐约可见闪烁,因为它得到的装饰 - 这是一堆的组合框饰的DevExpress.这种设置意味着有当我滚出一个记录与ComplexChildElement,然后再返回无闪烁,如果我开始与ComplexChildElement有主控显示,没有闪烁,当它再次弹出.

但主控制键到另一个数据源,我不能保证会出现在第一个记录,这是在一个更大的显示屏框架初始化加载ComplexChildElement我真的不想在此刻根左右.

那么我怎样才能保证在表单加载时会呈现ComplexChildElement,并可能在之后立即隐藏它?我已经尝试在这个后面的函数内部打开和关闭ChildPanels.Active:

 <dxmvvm:Interaction.Triggers>
    <dxmvvm:EventToCommand EventName="Loaded" Command="{Binding OnViewLoadedCommand}" />
 </dxmvvm:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)

但这并没有让他们渲染.

顺便说一下这个功能:

foreach (var childModel in ChildPanels.Values)
  {
    childModel.Active = true;
    RaisePropertyChanged(() => childModel.Active);
  }
ChangeChildModel();
Run Code Online (Sandbox Code Playgroud)

最后一个函数调用是一个被调用的函数调用,用于在记录更改时更改子模型的可见性.如果我不进行最后一次调用,则所有子视图模型都会显示为可见.

c# wpf mvvm

14
推荐指数
1
解决办法
766
查看次数

Tomcat没有解析.war符号链接

我有一台开发机器,我以前安装过Tomcat,只是作为开发工作的同一个用户运行它.我删除了一个符号链接$CATALINA_HOME/webapps到我构建WAR的目录,每次我更新构建tomcat后跟着符号链接并提取新的WAR.没有任何问题.

但是为了准备将其移动到生产机器,我创建了一个具有受限权限的新用户,并将tomcat设置为以该用户身份运行,就像出于安全原因一样.

现在tomcat不再遵循符号链接了,即使我给它的用户拥有WAR文件并将权限设置为777.我也没有看到任何内容catalina.out或日常记录中发生的事情.

这只是将测试周期复制到WAR的一个步骤,所以这不是太关键,但我仍然对于发生了什么感到好奇.

webapps目录的权限:

drwxr-xr-x 3 tomcat tomcat  4096 Dec 11 14:34 webapps
Run Code Online (Sandbox Code Playgroud)

我正在构建的目录的权限:

drwxrwxr-x 11 tomcat   tomcat   4096 Dec 11 14:34 target
Run Code Online (Sandbox Code Playgroud)

WAR文件maven的权限产生:

-rw-rw-r-- 1 tomcat tomcat 16822856 Dec 11 14:34 [webapp].war
Run Code Online (Sandbox Code Playgroud)

我创建的符号链接的权限:

lrwxrwxrwx 1 tomcat tomcat 60 Dec 11 17:33 [webapp].war -> [webapp directory]/[webapp].war
Run Code Online (Sandbox Code Playgroud)

java tomcat

10
推荐指数
1
解决办法
1845
查看次数

获取 SignalR 连接启动错误堆栈

如何在 SignalR 连接设置期间获取其他功能正常的 Web 应用程序中发生的异常的完整堆栈?

背景

我是维护带有 C# 客户端的 Web 应用程序的团队的一员,该应用程序使用极其基本的 SignalR 设置(版本 2.2)在长时间运行的服务器进程期间有效地提供有关进度的推送通知。就像,开箱即用,

app.MapSignalR();
Run Code Online (Sandbox Code Playgroud)
HubConnection connection = new HubConnection(_applicationConfiguration.ApiBaseUri + "/signalr");
await connection.Start();
Run Code Online (Sandbox Code Playgroud)

基本的。我们的一些客户端在远程服务上运行,并定期遇到一个问题,即 Web 应用程序的其他功能工作正常,但调用的客户端代码connection.Start()返回 500 内部服务器错误,没有进一步的信息。他们可以通过刷新远程连接来解决它,但这不太理想,所以我试图获取一些有关连接设置过程中发生此错误的位置的信息。

问题

按照有关在 MSDN 上为 SignalR 设置错误处理的信息,我尝试通过将以下管道模块插入到以下管道模块中来模拟问题GlobalHost.HubPipeline

public class HubErrorHandlingModule : HubPipelineModule
  {
    public override Func<IHub, Task> BuildConnect(Func<IHub, Task> connect)
    {
      throw new InvalidOperationException("Testing Connection Exceptions");
    }

    protected override void OnIncomingError(ExceptionContext exceptionContext, 
      IHubIncomingInvokerContext invokerContext)
    {
      // some logging happens here
      base.OnIncomingError(exceptionContext, invokerContext);
    }
  }
Run Code Online (Sandbox Code Playgroud)

它有点工作,因为我可以看到在管道代码中抛出异常,并且我的测试 C# 客户端也看到 …

c# asp.net-mvc-4 signalr.client signalr-2

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

使用JQuery捕获DOM中的鼠标点击?

背景

我正在使用POST表单提交而不是Web应用程序中带有连接参数的链接,因此我可以控制输入.

不幸的是,这意味着用户无法使用他们所知的快捷方式在新窗口中打开链接,例如按住控件或单击鼠标中键.

问题

基于W3C DOM鼠标事件规范,我有一个似乎是一种可行的方法来使用jQuery来捕获鼠标输入和各种和弦键:

 $("span#clickspan").click( function(event) {

   buttonpress = event.button;
   ctrlpress = event.ctrlKey;

    $("#clickresult").empty();
    $("#clickresult").append("<p>Click!</p>");
    $("#clickresult").append("<p>Button # " + buttonpress + " pressed!</p>");
    if (ctrlpress) {
        $("#clickresult").append("<p>Control-click!</p>");
    }

    //form submission code would go here

    event.preventDefault();

    }
 );
Run Code Online (Sandbox Code Playgroud)

我可以通过这种方式捕获控件 - 点击(在Firefox 3和IE7中测试),并且它正确地(?)报告左键单击来自鼠标按钮#0,但由于某种原因,此代码仍未捕获中间点击跨度,右键单击仍会弹出上下文菜单.我想至少捕获中间点击次数.

有人可以帮忙吗?

什么"控制"的意思

带有连接参数的GET提交/链接的问题是任何人都可以编辑地址栏并键入任何内容.我已经担心服务器端的身份验证和验证.这不是我想使用POST的原因.

我应该只向用户显示有意义的信息.内部数据库ID不是.我应该只是让用户以有意义的方式与应用程序交互.任意编辑地址栏不是其中之一.

人们总是打错字.但是,从系统的角度来看,地址栏中的拼写错误与应用程序逻辑中的缺陷之间没有区别,我宁愿不去决定哪一个刚刚发生在用户身上.

javascript mouse jquery dom

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

HTML Purifier选择性地吃特殊字符

对符合UTF-8的数据库使用PHP.这是输入的输入方式.

  1. 用户类型输入到textarea
  2. 使用javascript escape()编码的textarea
  3. 通过HTTP帖子传递
  4. 用PHP rawurldecode()解码
  5. 使用默认设置传递HTMLPurifier
  6. 转义为MySQL并存储在数据库中

它以通常的方式出现,我在页面加载时运行unescape().这是为了让人们直接从word文档中复制和粘贴,并显示智能引号.

但HTMLPurifier似乎正在破坏非UTF-8特殊字符,那些逃逸()到一个简单的%表达式,比如Ö,它逃脱到%D6,而smartquotes逃到%u2024或其他东西,然后以这种方式进入数据库.它取出了特殊字符和紧随其后的字符.

我需要在这个过程中改变一些东西.也许我需要改变多件事.

我怎么办才能得不到特殊字符?

javascript php htmlpurifier

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

浮动太远了

我有一个记录管理Web应用程序,它在一个屏幕上显示一个主记录,AJAXes动态构建编辑器到一个编辑器div,我用JQuery来制作可拖动的.这样可行.

即使div不是一个窗口,我认为让它更像一个窗口可能是一个好主意,所以我用"关闭"按钮进行编码.结构如下所示:

<div id="editor">
  <div id="draghandle" />
  <div id="closebutton" />
  <div id="editorbody" />
</div>
Run Code Online (Sandbox Code Playgroud)

Editorbody是可变维度的,取决于人们想要进入的内容.

Draghandle的宽度设置为编辑器的100%.Closebutton在CSS中设置为float:right.

我的问题是,在IE6和IE7中,关闭按钮浮动得太远了.它总是在窗口的右边缘,无论我在哪里拖动编辑器div.在Firefox和Safari中,它看起来像我预期的那样 - 窗口和编辑器一样宽,而按钮位于右上角.

我并不特别喜欢浮动:对,只是想找到一种方法来设置CSS,它会在所有浏览器中给出相同的结果.有任何想法吗?

"屏幕截图"

这是我想在jsbin上做的一个模型(谢谢,redsquare)

示例代码

我正在使用法律敏感信息,因此我无法提供该应用的屏幕截图.但是,我拍摄了一些照片并屏蔽了文本和界面,只留下了窗口结构.

它在IE7中看起来如何

它在firefox 3中的外观如何

css jquery css-float internet-explorer-7 internet-explorer-6

0
推荐指数
1
解决办法
7056
查看次数