我越来越厌倦了关于控件 ID 的所有怪癖,试图在服务器端获取数据(基于客户端事件)。我似乎花了更多的时间与 ASP.NET 中的控件进行斗争,我认为这花费的时间比使用它所获得的时间还要多。
我正在考虑使用纯 html/javascript 和 jQuery 以及返回 json 数据的 Web 服务。
我认为 Webform 中我唯一会怀念的是 MasterPages、 session 管理、基于 Windows 登录的身份验证以及可能的验证器(尽管它们也有一些怪癖)。 (事实上,可能不是为了session和auth,但我从来没有开发过webservices)
- 是不是方式有问题 我正在考虑这个问题,或者 有什么我没想到的吗?
- asp.net 中是否有您需要的东西 我想我会想念吗?
- 有人以前做过这个并想分享经验吗?
另请注意,我只有 Framework 2.0 可用于开发。
<小时/>编辑:在 asp.net 中给我带来麻烦的事情让我想知道是否需要进行切换:
这是给我带来问题的页面示例。
有一个树表(主/详细信息)
您可以编辑每个子行上的字段。
当您按下保存按钮时,必须更新组行中的数据(仅来自选择的数据,不修改数据库),如下所示 子行的数据。
我不想刷新整个页面,因为显示的记录基于搜索条件。
主/详细信息是使用中继器生成的
尝试从后面的代码更新记录确实很奇怪,并且仍然不知道如何更新显示。
使用 jQuery 和 Web 服务,我的猜测是我可以直接更新到数据库,请求我想要显示的内容,然后更新该记录。这种事情让我怀疑 ASP.NET 是否只是妨碍了我。
________________________________________________________________________ | - Some Details About Group | |________________________________________________________________________| |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| | ChildRecord Some Editable Fields SaveButton | | ChildRecord Some Editable Fields SaveButton | | ChildRecord Some Editable Fields SaveButton | | ChildRecord Some Editable Fields SaveButton | |_______________________________________________________| ________________________________________________________________________ | + Some Details About Group | |________________________________________________________________________| ________________________________________________________________________ | + Some Details About Group | |________________________________________________________________________|<小时/>
编辑2: 我遇到的关于 ASP.NET 的问题与 ajax 无关。是的,我使用 jQuery 使界面更加动态,例如在不需要时显示/隐藏搜索部分以及折叠树中的详细信息,但这就是我用它所做的一切。
令我困扰的是,如果我想检查在这个例子中哪个按钮被点击,我必须使用一些感觉有点笨拙的技巧。
如果你想在转发器中使用数据绑定(bind)组合框,你必须使用代码隐藏来设置所选值,检索所选数据将是一件痛苦的事情。
接下来,如果你想检查哪些数据被修改了,你必须将数据表保存在 View 状态中,从中继器中的所有控件中读取数据,然后与数据表进行比较以进行更新。这正是 ASP.NET 困扰我的问题。
最佳答案
如果使用得当,ASP.NET 和 JavaScript/jQuery Web 应用程序确实可以相得益彰。我现在已经在 3 个不同的 Web 应用程序中实现了 jQuery,并且我喜欢它的每一分钟。只要您充分利用每个组件的优势,您最终就会对该项目感到满意。
您特别提到 Control ID 导致了问题,但这确实不是什么大问题。
JavaScript
document.getElementById("<%=this.MyObject.ClientID %>");
jQuery
$("#<%=this.MyObject.ClientID %>")....
在您的父子关系示例中,您可以非常轻松地准确处理您正在使用 ASP.NET 和 UpdatePanels 的 AJAX 框架讨论的内容。
关于.net - 从 ASP.NET 切换到面包和黄油 HTML/jQuery 的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/710016/