小编Cit*_*rus的帖子

Knockout自定义绑定更新未触发

使用以下代码,我希望每次更新viewModel.item observable时都会执行更新函数.我可以看到我的init和更新函数按照预期在页面加载时触发,但是当我单击我的按钮更新observable的值时则不会.

标记:

<button id='addButton'>item++</button>
<br/>
<span>viewModel.item = </span>
<span data-bind='text: $data.item(), bind: viewModel.item'></span>
Run Code Online (Sandbox Code Playgroud)

脚本:

$(document).ready(function() {
    $('#addButton').click(function() {
        viewModel.item(viewModel.item() + 1);
    });    
    var viewModel = {
        item: ko.observable(1)
    };        
    ko.bindingHandlers.bind = {
        init: function(element, valueAccessor) {
            alert('init');
        },
        update: function(element, valueAccessor) {
            alert('update');
        }  
    };        
    ko.applyBindings(viewModel);
}); 
Run Code Online (Sandbox Code Playgroud)

我浏览了一些类似的问题,但没有找到类似的例子.我在这里创建了一个JSFiddle .

javascript jquery custom-binding knockout.js

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

如何动态地从ASP.NET MVC控制器获取数据到jQuery?

我有一个jQuery函数,在单击div元素时,获取该元素预定义的ID值.我想要做的是加载父元素子元素,所以我打算使用jQuery动态构建一些html.我不知道该怎么做,是调用一个控制器(ASP.NET MVC 3)并让控制器将一个集合返回给客户端.

我知道如何从jQuery向控制器发送JSON对象,但不是相反.

提前致谢!

jquery json asp.net-mvc-3

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

使用Topshelf执行多个Quartz.NET作业

我试图使用C#在Quartz.NET和Topshelf上运行多个作业.

HostFactory.Run(c =>
{
    c.ScheduleQuartzJobAsService(q =>
        q.WithJob(() => JobBuilder.Create<TypeA>().Build())
        .AddTrigger(() => TriggerBuilder.Create().WithSimpleSchedule(builder => builder.WithIntervalInSeconds(ConfigurationSettings.AppFrequencyInSeconds).RepeatForever()).Build())
        ).StartAutomatically().
        ScheduleQuartzJobAsService(r => 
        r.WithJob(() => JobBuilder.Create<TypeB>().Build())
        .AddTrigger(() => TriggerBuilder.Create().WithSimpleSchedule(builder => builder.
            WithIntervalInSeconds(ConfigurationSettings.AppFrequencyInSeconds).RepeatForever()).Build())
            ).StartAutomatically();
    c.StartAutomatically();
    c.SetServiceName("ServiceName");
});
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,只执行TypeB中的execute方法.我也尝试过:

HostFactory.Run(c =>
{
    c.ScheduleQuartzJobAsService(q =>
        q.WithJob(() => JobBuilder.Create<TypeA>().Build())
        .AddTrigger(() => TriggerBuilder.Create().WithSimpleSchedule(builder => builder.
            WithIntervalInSeconds(ConfigurationSettings.AppFrequencyInSeconds).RepeatForever()).Build())
        ).StartAutomatically();
    c.StartAutomatically();
    c.SetServiceName("Service1");

    c.ScheduleQuartzJobAsService(r =>
        r.WithJob(() => JobBuilder.Create<TypeB>().Build())
        .AddTrigger(() => TriggerBuilder.Create().WithSimpleSchedule(builder => builder.
            WithIntervalInSeconds(ConfigurationSettings.AppFrequencyInSeconds).RepeatForever()).Build())
        ).StartAutomatically();
    c.StartAutomatically();
    c.SetServiceName("Service2");
});
Run Code Online (Sandbox Code Playgroud)

使用此代码,仅调用TypeB中的execute方法.我的类TypeA和TypeB都有'Execute'方法,这些方法是每个类的入口点(如果它们是作业的一部分,它们会被调用).似乎第二个服务代码是总是被调用的服务代码 - 如果我交换这两个ScheduleQuartzJobAsService调用的顺序,它总是在第二个调用中执行的类.

如何编写HostFactory.Run方法,以便同时执行两个作业?

c# quartz-scheduler quartz.net topshelf

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

可点击表格单元格内的按钮

我有一个可单击的表格单元格,并在单击时触发jQuery事件.在该单元格中,我还有一个按钮,单击时会有另一个jQuery事件.问题是,当单击按钮时,将触发单元格和按钮事件.

例如:

<script>
    $(document).ready(function () {
        $('#cell').click(function () {
            alert('cell clicked');
        });        
        $('#button').click(function () {
            alert('button clicked');
        });
    });
</script>

<table>
    <tr>
        <td id="cell">
            <button id="button">go</button>
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

单击按钮时,如何防止单击事件被触发?

html javascript jquery

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

c#Winforms:DataGridView使事件没有获得上次更新的单元格的值

我有一个带有DataGridViewon和Back/Next按钮的WinForms屏幕.在FormLoad,网格上填充了XML文档中的值.然后,用户可以更改网格中任何单元格的值.我已经创建了一个SaveGridValuesToXml方法,它使用网格单元格中的更新值更新XML文件.

这大部分工作正常,我已经SaveGridValuesToXml从网格上的Leave事件中解雇了该方法,因此当用户单击后退或下一步并且网格失去焦点时,将调用save方法.

我遇到的问题是所有单元格值都在XML文件中正确更新和反映,除了网格失去焦点时具有焦点的单元格.例如,在三列网格中,如果我更新第一行中的第一个,第二个和第三个单元格,当网格失去焦点时,我在第一个和第二个单元格中所做的更改将保存到我的XML文件中.

代码示例如下 - 在LoadXmlDataIntoGridGridView()加载父窗体时调用该方法.

XmlDataDocument xmlData = new XmlDataDocument();

private void LoadXmlDataIntoGridGridView()
{        
    xmlData.DataSet.ReadXml(@"C:\testFile.xml");
    uxMappingDataGridView.DataSource = xmlData.DataSet;
    uxMappingDataGridView.DataMember = "Item";
}

private void uxBackButton_Click(object sender, EventArgs e)
{
    this.Hide();
    uxSettingsUserControl settingsScreen 
       = ParentForm.Controls["uxSettingsUserControl"] as uxSettingsUserControl;
    settingsScreen.Show();
}

private void uxNextButton_Click(object sender, EventArgs e)
{
    this.Hide();
    uxLoadScriptUserControl loadScriptScreen 
       = ParentForm.Controls["uxLoadScriptUserControl"] as uxLoadScriptUserControl;
    loadScriptScreen.Show();
}

private void uxMappingDataGridView_Leave(object sender, EventArgs e)
{
    SaveGridValuesToXml();
}

private void SaveGridValuesToXml()
{   
    xmlData.DataSet.WriteXml(@"C:\testFile.xml");
} …
Run Code Online (Sandbox Code Playgroud)

c# xml datagridview xmldataset winforms

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