小编hyp*_*man的帖子

在ajax更新后,Primefaces blockUI停止工作

我正在尝试创建一个在忙碌时显示blockUI的数据表,而且我大部分都成功了.现在,当我单击两个commandButtons中的任何一个时,它会变灰并显示"正在加载...",通过单击标题对数据表进行排序,或者通过数据表进行分页.你可以在下面看到它的代码.

问题是,在我使用了commandButtons之一(在被阻止元素上运行ajax更新)之后,后续操作不会触发blockUI(直到我刷新页面).例如:

  • 加载页面
  • 单击数据表头 - blockUI出现,直到表完成排序
  • 单击其中一个数据表页面导航按钮 - 将显示blockUI,直到加载页面
  • 单击commandButtons之一 - blockUI出现,直到按钮的actionListener完成
  • 单击数据表头 - 表排序,但不显示blockUI.
  • 单击其中一个数据表页面导航按钮 - 页面加载,但不显示blockUI
  • 单击commandButtons之一 - actionListener运行和表更新,但不显示blockUI
  • 重新加载页面 - 一切正常

将commandButtons的update =""属性更改为ajax ="false"会导致排序/分页始终显示blockUI,但commandButtons始终不显示blockUI.

有任何想法吗?

<div class="buttonDiv">
    <p:commandButton ... update="resultsPanel" id="submitButton" ... />
    ...
    <p:commandButton ... update="resultsPanel" id="resetScenarioButton" ... />
</div>
<p:panel header="Results Grid" id="resultsPanel">
    ...
    <p:dataTable ... id="VAResults" ... >
        ...
    </p:dataTable>
    ....
</p:panel>
<p:blockUI block="resultsPanel" trigger="submitButton, resetScenarioButton, VAResults">
    Loading...
</p:blockUI>
Run Code Online (Sandbox Code Playgroud)

ajax blockui primefaces jsf-2

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

创建一个Observable <T>类:重载=运算符?

我正在尝试创建一个包含值的类,每当值发生更改时都会引发一个事件,并将隐式转换为它所拥有的类型.

我的目标是我应该能够创建一个类的Observable属性,并让另一个类(包括WPF控件)能够读取和写入它,就像它是一个常规字符串一样.其他类可以将它作为Observable维护,或者甚至将其作为自己的属性公开,而不必创建新事件.

这是我到目前为止:

using System;
using System.ComponentModel;

namespace SATS.Utilities
{
    public class Observable<T>
    {
        private T mValue;

        public event EventHandler ValueChanged;
        public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyValueChanged()
        {
            if (ValueChanged != null)
            {
                ValueChanged(this, new EventArgs());
            }
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("Value"));
            }
        }

        public T Value
        {
            get
            {
                return mValue;
            }
            set
            {
                SetValueSilently(value);
                NotifyValueChanged();
            }
        }

        public void SetValueSilently(T value)
        {
            mValue = value;
        }

        public static implicit operator T(Observable<T> observable)
        {
            return …
Run Code Online (Sandbox Code Playgroud)

c# wpf overloading observable

7
推荐指数
1
解决办法
2340
查看次数

无法恢复"替换"的操作

我正在使用TortoiseSVN 1.8版.在几次修改之前,我重新整合了一个分支,导致一些文件被替换为trunk*.我恢复了修订并重新合并,在提交之前小心地恢复我工作副本中的替换文件.

但是,现在我看到这些文件仍然标记为在主干中替换.当我从trunk合并到另一个分支时,它会尝试替换这些文件.

我注意到,将错误合并恢复到主干的修订版除了替换后的文件外,还恢复了所有内容.现在,当我转到该版本时,选择一个替换文件并选择"从此版本还原更改",它似乎做了一些事情,但我的工作副本保持不变.即使我在合并之前选择了修订版并为整个主干选择了"还原到此版本",它也不会对替换的文件执行任何操作.

我不知道如何恢复这些文件的"替换"操作.

*我认为这是因为在某些时候,从主干到分支的合并发生了错误.这些文件可能已经添加到分支中而不知道它们来自主干,因此当它们重新集成时,它们会替换原始文件.

svn tortoisesvn

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

WPF ComboBox忽略ToString覆盖ItemsSource对象

我已经定义了WatchList如下:

// a named list of VariableWatchers
public class WatchList : List<VariableWatcher>
{
    private string _name;

    public WatchList(string name) : base()
    {
        _name = name;
    }

    public override string ToString()
    {
        return _name;
    }
}
Run Code Online (Sandbox Code Playgroud)

我将WatchLists列表绑定到ComboBox的ItemsSource属性,如下所示:

<ComboBox x:Name="WatchListDropdown"
          ItemsSource="{Binding Path=WatchLists}"
          VerticalAlignment="Center"
          Margin="5"/>
Run Code Online (Sandbox Code Playgroud)

"WatchLists"指的是我的DataContext中的以下属性:

public IList<WatchList> WatchLists
{
    get { return _watchLists; }
}
Run Code Online (Sandbox Code Playgroud)

一切都很好,除了列表中的所有条目都显示为"(Collection)"而不是_name变量.我在ToString中放置了一个断点,并确认它在某个时刻被调用,并返回正确的值,但不知何故,ComboBox仍显示"(Collection)".

c# wpf combobox overriding tostring

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