小编Mar*_*cel的帖子

如何使用css3 calc设置div的'left'属性?

我试图在一个确切的位置设置div的left属性,具体取决于其父级的宽度.

具体来说,我希望'left'属性为其父宽度 - 350px.

我试图像这样使用css3的计算(左:calc(100% - 350px))无济于事.这可能是因为100%正在查看左侧属性而不是父级宽度...

这有可能或我做错了什么?

谢谢

<div id="login5" class="login">
    <h3>Login</h3>

    // code 

</div>
Run Code Online (Sandbox Code Playgroud)

然后在我的CSS中:

#login5 {
    position: absolute;
    width: 260px;
    left: calc(100% - 350px);
    background-color: rgba(50, 50, 50, 0.6);
    padding: 20px;
    }
Run Code Online (Sandbox Code Playgroud)

css3

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

SignalR Client Hub上的On事件不会被调用

我似乎与SignalR的JS Client Hub有问题.

问题是'on'处理程序似乎不起作用 - 它不会产生错误,但不会接收服务器发送的任何信号.下面的代码显示了一个提取,我调用服务器(使用调用)工作正常 - 然后在服务器上我回调acceptHubData应该在客户端上获取但不是.

我的目标是当导航到页面时,每个页面将打开与特定集线器的连接,并在用户移动到另一个页面时释放此连接!

编辑:使用以下代码片段工作,但我想知道为什么下面的代码使用'on'事件不起作用!

    var superHub = $.connection.mySuperHub;

    superHub.client.acceptHubData = function (data) {
        $('<li>hello there' + data + '</li>').prependTo($('#ul1'))
    }

    $.connection.hub.start().done(function () {
        $('<li>done phase 1</li>').prependTo($('#ul1'))
    });
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

这是客户端代码(以js为单位)

$(document).ready(function () {

    var myHub;

    try {

        var connection = $.hubConnection();

        connection.start().done(function () {

            myHub = connection.createHubProxy("mySuperHub");

            myHub.on('acceptHubData', function (data) {
                alert(data);   // THIS IS NOT CALLED!
            });

            myHub.invoke('AcceptSignal', "hello from the client2");

        });

    }
    catch (e) {
        alert(e.message);
    }
});
Run Code Online (Sandbox Code Playgroud)

这是服务器代码:

[HubName("mySuperHub")]
public …
Run Code Online (Sandbox Code Playgroud)

signalr signalr-hub

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

如何使用Dynamic LINQ使用GroupBy

我正在尝试使用动态LINQ进行GroupBy,但无法使其工作.

这是一些说明问题的示例代码:

List<dtoMyAlbum> listAlbums = new List<dtoMyAlbum>();
for (int i = 0; i < 5000; i++)
{
    dtoMyAlbum album = new dtoMyAlbum
    {
        Author = "My Author",
        BookID = i,
        CurrSymbol = "USD",
        Price = 23.23,
        Shop = i % 3 == 0 ? "TESCO" : "HMV"
    };
    listAlbums.Add(album);
}

IQueryable<dtoMyAlbum> mydata = listAlbums.AsQueryable();
int count = mydata.Count();

//var mydataGrouped = mydata.GroupBy(a => a.Shop);      // <-- this works well (but is not dynamic....)
var mydataGrouped = mydata.GroupBy("Shop");             // <-- does …
Run Code Online (Sandbox Code Playgroud)

c# linq dynamic-linq

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

如何从敲除绑定中获取DOM元素?

我使用knockout将DOM元素绑定到viewModel.当我在底层模型上更改属性时,它会更改DOM - 一切正常.

但是,有没有办法到达绑定的DOM元素,所以我可以在底层模型从外部更新时添加一个类?

我使用了自定义绑定,这使我可以访问DOM元素,但我想知道是否有一个更简单的方法直接来自viewModel的绑定属性?

谢谢

示例代码(TypeScript)

SetMyCell(row: number, newValue: any) {

    var ditem = this._DataItems[row];

    // update the actual value    
    ditem.Producer(newValue);

    // Now I wish to decorate the DOM item this Producer property is 
    // bound to with a class. How to go about that?

}
Run Code Online (Sandbox Code Playgroud)

knockout.js

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

在代码问题中应用动画ScaleTransform

我试图找出为什么下面的代码似乎不起作用.它没有给出错误 - 它根本不会缩放.如果我将其更改为我的第二个代码示例,它实际上似乎有效.有人有任何想法吗?

谢谢

public static void StartMouseEnterAnimation(Button button)
    {
        Storyboard storyboard = new Storyboard();

        ScaleTransform scale = new ScaleTransform(1.0, 1.0, 1, 1);
        button.RenderTransformOrigin = new Point(0.5, 0.5);
        button.RenderTransform = scale;

        DoubleAnimation growAnimation = new DoubleAnimation();
        growAnimation.Duration = TimeSpan.FromMilliseconds(300);
        growAnimation.From = 1;
        growAnimation.To = 1.8;
        storyboard.Children.Add(growAnimation);

        Storyboard.SetTargetProperty(growAnimation, new PropertyPath(ScaleTransform.ScaleXProperty));
        Storyboard.SetTarget(growAnimation, scale);

        storyboard.Begin();
    }
Run Code Online (Sandbox Code Playgroud)

---下面的DOES工作,但我必须创建一个TransformGroup并通过一个更复杂的PropertyChain引用它...

public static void StartMouseEnterAnimation(Button button)
    {    
        Storyboard storyboard = new Storyboard();            
        ScaleTransform scale = new ScaleTransform(1.0, 1.0, 1, 1);
        button.RenderTransformOrigin = new Point(0.5, 0.5);
        TransformGroup myTransGroup …
Run Code Online (Sandbox Code Playgroud)

c# wpf animation rendertransform

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

如何使用动态对象将变量用作方法名称

在SignalR中,HubConnectionContext中定义了公共属性:

public dynamic All { get; set; }
Run Code Online (Sandbox Code Playgroud)

这使得用户可以称之为:All.someMethodName(); 这很棒.

我现在想在我的函数中使用传入参数来调用它.我怎样才能做到这一点?

如: All.<my variable as method name>();

有没有办法做到这一点?

谢谢

编辑示例:

    public void AcceptSignal(string methodToCall, string msg)
    {
        Clients.All.someMethod(msg);       // THIS WORKS
        Clients.All.<methodToCall>(msg);   // THIS DOES NOT WORK (But I would like it to!)
    }
Run Code Online (Sandbox Code Playgroud)

c# signalr

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

如何使用动态LINQ进行求和

我有以下与动态linq库完美配合:

string where = "Price < 5";
string orderby = "BookID ASC";
IQueryable<T> MyDataQueryable = _DataRawBase.AsQueryable<T>();
MyDataQueryable = MyDataQueryable.Where(where).OrderBy(orderby);
Run Code Online (Sandbox Code Playgroud)

现在我想查询MyDataQueryable来做某些字段的SUM(也许是平均值).

我该怎么做?

就像是:

double mysum = MyDataQueryable.Sum("Price");  
Run Code Online (Sandbox Code Playgroud)

会好的...

c# linq

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

如何使用TypeScript/jQuery传递元素

我试图通过TypeScript/JQuery计算出DOM元素的位置和高度/宽度.在TypeScript之前我只是做了这样的事情:

        function ActOnClick(itemClicked, loadPath) {
            //sample code
            var v1 = itemClicked.offset();
            var v2 = itemClicked.width();
            var v3 = itemClicked.height();

        };

        $(document).ready(function () {

            $("#idCRM").click(function () {
                ActOnClick($("#idCRM"), "/Widgets/GetCRM");
            });
}
Run Code Online (Sandbox Code Playgroud)

其中idCRM是我的cshtml文档中的"部分"(但它可以是任何div等)

现在我试图将此代码移动到TypeScript中,但我在ActOnClick函数中期望从jQuery的$("#idCRM")进入什么类型?现在我选择'元素'但是a)它没有暴露宽度,高度等b)由$("#idCRM")引起的ActOnClick调用失败!

/// <reference path="../../ScriptsTS/jquery.d.ts" />
function ActOnClick(itemClicked: Element, loadPath: string) {

    var v1 = itemClicked.offset();  <-- FAILS
    var v2 = itemClicked.width();   <-- FAILS
    var v3 = itemClicked.height();  <-- FAILS

};

$(document).ready(function () {

    $("#idCRM").click(function () {
        ActOnClick($("#idCRM"), "/Widgets/GetCRM");  <-- FAILS
    });
}
Run Code Online (Sandbox Code Playgroud)

jquery typescript

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

在两个对象的属性之间绑定,这两个对象都在代码中实现INotifyPropertyChanged

我试图从两个不同的对象绑定两个属性,这两个属性都INotifyPropertyChanged在代码中实现:

    public class ClassA : INotifyPropertyChanged
    {
        // leaving out the INotifyPropertyChanged Members for brevity

        public string Status
        {
            get { return _Status; }
            set { _Status = value; RaiseChanged("Status"); }
        }

    }

    public class ClassB : INotifyPropertyChanged
    {
        // leaving out the INotifyPropertyChanged Members for brevity

        public string Status
        {
            get { return _Status; }
            set { _Status = value; RaiseChanged("Status"); }
        }

    }
Run Code Online (Sandbox Code Playgroud)

有没有办法可以将这两个属性绑定在代码中,如果其中一个属性是"正确的"依赖属性,我会怎么做?像这样的东西?

ClassA classA = new ClassA();
ClassB classB = new ClassB();

Binding bind …
Run Code Online (Sandbox Code Playgroud)

.net wpf binding

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

如何在Kendo树视图中查找嵌套节点,其中数据通过web-api"lazely"提供

我知道在Kendo树视图中查找嵌套节点的确切路径.所以我希望沿着这条路线扩展所有节点去实现目标.我知道如何找到一个节点并让Kendo扩展该节点.

我的Treeview使用web-api来获取数据,一切运行良好.模式定义如下:

            schema: {
                model: {
                    id: "CodeList",
                    hasChildren: "HasKids"
                }
            }
Run Code Online (Sandbox Code Playgroud)

我想要实现的是树自动扩展到嵌套级别.说我知道到达节点的路径是'Level1CodeA | Level2CodeA | Level3CodeA'所以首先我想找到我能做的代码'Level1CodeA'.
然后,我希望扩展此节点(在内部它检索此节点下的数据,它扩展正常)之后我想找到'Level2CodeA',重复该过程,所以也找到然后选择Level3CodeA.

我该怎么做?我正在寻找一个'AfterExpanded'事件,我可以用它开始下一个搜索和扩展操作,但我找不到任何我可以使用的事件.我在我的数据源上尝试了'更改'事件,但这次被激活多次,我似乎无法将其缩小到正确的项目..

非常感谢.

编辑:更多代码

<script id="treeII-template" type="text/kendo-ui-template">
    <img id="explorerItemImg" src="#: item.Image #" />
    <span id="explorerItemCode">#: item.Code #</span> - 
    <span id="explorerItemFullName">#: item.FullName #</span>
    # if (item.Level < (item.Levels - 1)) { #
        [<span id="explorerItemLCount">#: item.LCount #</span>]
    # } #
    # if (item.HasKids) { #
        [<span id="explorerItemPCount">#: item.PCount #</span>]
    # } #

</script>
Run Code Online (Sandbox Code Playgroud)

用于创建HierarchicalDataSource并将其分配给树视图的代码:

    // -----------------
    // set the datasource for the bottom explorer...
    // …
Run Code Online (Sandbox Code Playgroud)

kendo-ui

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

重新输入搜索字符串时,Kendo AutoComplete 不会重新查询数据源

我的 Kendo AutoComplete 小部件有问题。

我正在尝试在用户输入搜索的前两个字符后查询数据源。在服务器(web api)上,我使用这两个字符来限制搜索,一切都很好,即如果我继续输入搜索,将返回一个子集并正确显示并进一步过滤。

但是,然后我重新键入一个新的搜索条目,该条目不再返回数据源,因此我被困在从第一个查询中检索到的数据中。

我该如何正确处理?

谢谢

这是我的测试代码:

public class AlbumsController : ApiController
{
    HttpRequest _request = HttpContext.Current.Request;

    // GET api/albums
    public IEnumerable<Album> GetForAutoComplete()
    {
        string sw = _request["sw"] == null ? "" : _request["sw"].ToString();

        var query = (from a in Albums.MyAlbums
                     where a.Title.ToLower().StartsWith(sw)
                     orderby a.Title
                     select a).ToArray();

        return query;
    }
Run Code Online (Sandbox Code Playgroud)

我在客户端的 javascript 是这样的:

    var dataSource = new kendo.data.DataSource({
        transport: {
            read: {
                url: "/api/Albums/GetForAutoComplete",
                data: {
                    sw: function () {
                        return $("#albumSearch").data("kendoAutoComplete").value();
                    }
                }
            } …
Run Code Online (Sandbox Code Playgroud)

kendo-ui

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

如何从Vuex的变异或动作中调用共享的辅助函数

我试图分离出一些在Vuex变异中许多调用中常见的代码。我感到这是不受欢迎的,但我不明白为什么。

看下面的一些示例代码的图像:

我在Vuex中添加了此“帮助程序”条目-显然不存在,但是如何从突变和/或动作中调用共享的帮助程序功能“ getColumn”?

在此处输入图片说明


还是我不得不诉诸“ VuexHelper”类的静态方法?:(

就像是:

在此处输入图片说明

注意 我已经看过以下内容:

  1. Vue Mixins-是的,类似的方法可以工作,但Vuex不支持- 而且,vue方法不返回值 ...
  2. 我看过模块,但是这些仍然不能满足我的需求,即返回值的简单可重用函数。

谢谢

vue.js vuex

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

BlockingCollection - 高同步问题

从多个线程获取消息到队列的最佳方法是什么,并且一次只有一个线程处理此队列的项目?

尝试断开多线程的活动时,我经常使用此模式.

我正在使用BlockingCollection,如下面的代码提取中所示:

// start this task in a static constructor
Task.Factory.StartNew(() => ProcessMultiUseQueueEntries(), TaskCreationOptions.LongRunning);


private static BlockingCollection<Tuple<XClientMsgExt, BOInfo, string, BOStatus>> _q = new BlockingCollection<Tuple<XClientMsgExt, BOInfo, string, BOStatus>>();

    /// <summary>
    /// queued - Simple mechanism that will log the fact that this user is sending an xMsg (FROM a user)
    /// </summary>
    public static void LogXMsgFromUser(XClientMsgExt xMsg)
    {
        _q.Add(new Tuple<XClientMsgExt, BOInfo, string, BOStatus>(xMsg, null, "", BOStatus.Ignore));
    }

    /// <summary>
    /// queued - Simple mechanism that will log the data being …
Run Code Online (Sandbox Code Playgroud)

c# multithreading producer-consumer

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