3

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

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

4

2 回答 2

2

DataContext 和 AdoNetDataContext 作为其衍生品,它们自己使用 JavaScript 来跟踪和报告实际更改,同时保持与数据无关。它们旨在与人类一起工作,而不是其他代码 :-) 如果您需要从代码发送数据,您可以直接将数据发送到 JSON Web 服务 - 根本不需要摆弄自动生成的 UI。几乎所有这些 ASP.NET 自动生成控件的处理是,当公司根本不想被 UI 打扰时,它们适用于简单的事情 - 即插即用:-)

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

于 2010-08-28T11:29:33.713 回答
1

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

假设是这种情况,您的选择是:

  1. 让 jQuery 触发正确的事件
  2. 让 jQuery 触发特定于 AdoNetDataContext 的函数以强制识别更改
  3. 获取 AdoNetDataContext 以监听 jQuery 触发的任何事件

.
最“正确”的选项是#1,恕我直言。

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

存在触发事件的 jQuery 函数:http: //api.jquery.com/trigger/

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

$('foo').trigger('change');

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

于 2010-08-24T23:33:38.097 回答