Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';当这些更改通过js完成时,datacontext是否检测绑定到dataview的控件的更改?_Javascript_Asp.net Mvc 2_Asp.net Ajax_Datacontext_Dataview - Fatal编程技术网

Javascript 为什么可以';当这些更改通过js完成时,datacontext是否检测绑定到dataview的控件的更改?

Javascript 为什么可以';当这些更改通过js完成时,datacontext是否检测绑定到dataview的控件的更改?,javascript,asp.net-mvc-2,asp.net-ajax,datacontext,dataview,Javascript,Asp.net Mvc 2,Asp.net Ajax,Datacontext,Dataview,我创建了一个javascript AdoNetDataContext,并从中创建了一个DataView。我在模板上为表列使用文本框。AdoNetDataContext可以跟踪与所用表列对应的文本框中是否存在任何更改。但是我对文本框的更改是通过jquery完成的。问题是,datacontext无法识别有更改,因此无法提交这些更改 这种行为背后的原因是什么?我们如何解决这个问题?非常感谢。我不熟悉AdoNetDataContext/ASP,但听起来使用jQuery进行的编辑不会触发用于检测文本框值更

我创建了一个javascript AdoNetDataContext,并从中创建了一个DataView。我在模板上为表列使用文本框。AdoNetDataContext可以跟踪与所用表列对应的文本框中是否存在任何更改。但是我对文本框的更改是通过jquery完成的。问题是,datacontext无法识别有更改,因此无法提交这些更改


这种行为背后的原因是什么?我们如何解决这个问题?非常感谢。

我不熟悉AdoNetDataContext/ASP,但听起来使用jQuery进行的编辑不会触发用于检测文本框值更改的事件

假设是这样,您的选择是:

  • 让jQuery触发正确的事件
  • 获取jQuery以启动特定于AdoNetDataContext的函数以强制识别更改
  • 获取AdoNetDataContext以侦听jQuery触发的任何事件
  • .
    最“正确”的选择是#1,IMHO

    编辑:
    1。让jQuery触发corect事件::

    存在一个触发事件的jQuery函数:

    根据那里的文档,类似的东西应该可以工作(未经测试):


    (注意:这是假设AdoNetDataContext正在侦听'onChange'事件。如果没有,则需要找出它正在侦听的内容,并调用该函数)

    DataContext,因此AdoNetDataContext作为其衍生产品,单独使用JavaScript跟踪和报告实际更改,同时保持数据的不可知性。它们是为人类设计的,而不是其他代码:-)如果您需要从代码中发送数据,您可以直接将数据发送到JSON web服务-根本不需要摆弄自动生成的UI。几乎所有这些ASP.NET自动生成控件的特点是,当一家公司根本不想为做UI而烦恼时,它们只用于简单的事情——即插即用:)


    对于允许甚至邀请修改的Web UI,您需要切换到MVC.NET(也称为ASP.NET MVC-ppl,它非常喜欢使用名称:-)

    这正是我的问题。我没有看到任何让js触发事件的文档=(编辑了我的答案,以包含一些关于使用jQuery触发onChange()事件的额外信息。您需要进行一些测试/检查,以确定AdoNetDataContext是否侦听并响应此事件。jQuery对此没有问题。是AdoNetDataContext没有文档(或者idk,可能没有功能)。该触发器不会告诉adonetdatacontext发生了什么。您应该采取的步骤的高级答案是找出adonetdatacontext侦听的事件,然后找出jQuery是否触发了这些事件。这将告诉您问题出在何处,以及您告诉我/我所做的假设在AdoNetDataContext之外(正如我在回答中所说,我不熟悉它),我不确定是否还有其他故障点。我最初使用这个方法[blog.orbeon.com/2007/06/firebug-watching-events_03.html]来侦听事件和$(“msgb”).setAttribute('onChange','console.info(“foo”)).textContent='foobar3';以测试何时触发更改事件。只有手动编辑触发了该事件。我无法使$().change()正常工作。就像我认为我的问题有解决方案一样…叹气=(
    $('foo').trigger('change');