Sharepoint 2010 - 数据表视图和 3 个链接列表
我遇到了一个棘手的情况,我正在尝试确定解决问题的最佳方法。我是一名正在学习 SharePoint 的 VS 开发人员,因此当我想要完成的任务可以轻松地通过代码和数据库完成时,这对我来说有点令人沮丧。
我有三个列表,一个父列表和两个子列表,它们通过查找列链接。客户实际上希望所有内容都在一个列表中,但由于 SharePoint 列类型限制,我不得不将数据拆分为三个列表,其中有 300 多个字段。客户希望在一个视图中同时查看所有列表,并能够过滤和编辑项目组。
我已经成功创建了一个链接列表的新数据源,并且可以将其显示在我的页面之一上以供查看。然而,经过一些研究,我了解到,由于 SP 使用的 Office 组件的限制,我无法从此链接视图创建数据表视图。这是有道理的。
业务需求是客户根据从列表 A 和列表 B 和列表 C 中选择的条件来过滤三个列表,以获得一组项目,进行更新并将更改保存回 3 个列表。他们更喜欢在数据表视图中执行此操作,因为这模仿了他们当前正在使用的 Excel 电子表格,该网站将替换该电子表格。他们可能会使用此功能一次更新 1-30 个项目,这就是他们更喜欢拖动和复制功能的原因。
我正在考虑两个选项:尝试创建某种自定义 Web 部件,该部件在编辑模式下具有所有列的网格视图,可以过滤到其项目并进行更改。然后我必须循环遍历这些字段并以编程方式进行更新。我还在这个网站上看到了 jQuery.sheet,如果我走这条路而不是 gridview,看起来这可能是一个很好的解决方案。
或者有一个列出了列的模式窗口,让用户选择他们想要过滤的内容,然后重定向到一个页面,该页面在他们自己的 DSV 中显示三个列表。用户必须在三个单独的视图中进行更新。然后,在列表进行更改后,我将使用工作流程来同步列表。
我总是最终尝试以编程方式做事,因为我对 SP 仍然很不熟悉,而且似乎只是触及了它的局限性,而不是它的优势。有没有人尝试过做类似的事情?或者您对实现这一目标的最佳方法有什么建议吗?最佳实践?我感谢所有的想法和评论!仅供参考,我还在 MS SP 论坛上发布了此内容,以扩大网络...
谢谢, 萨布丽娜
I've got a tricky situation I'm trying to determine the best way to solve. I'm a VS developer who is learning SharePoint so it's a little frustrating to me when what I am trying to accomplish could easily be done with code and a db.
I have three lists, a parent and two children list that are linked through lookup columns. The client actually wanted everything in one list but due to SharePoint column type limitations I had to split the data into the three lists, there are over 300 fields. The client wants to see all the lists together in one view and be able to filter and edit groups of items.
I have successfully created a new data source linking the lists and can display that on one of my pages to view. After some research however I have learned that I can't create a datasheet view from this linked view due to limitations in the Office componets that SP uses. Which makes sense.
The business need is for the client to filter the three lists based on criteria they select from either list A AND list B and list C to get a group of items, they make the updates and save the changes back to the 3 lists. They prefer to do this in datasheet view because this mimics the excel spreadsheet that they are currently using that this website will replace. They will potentially be updating between 1-30 items at a time using this, which is why they prefer the drag and copy functionality.
I was thinking of two options: trying to create some kind of custom web part that has a gridview of all the columns in edit mode that they can filter down to their items and make their changes. Then I would have to loop through the fields and make updates programmatically. I also saw on this site jQuery.sheet, that looks like it may be a good solution if I go this route instead of gridview.
Or have a modal window with the columns listed, have the user select what they want to filter to, then redirect to a page that shows the three lists in their own DSVs. The user would have to make updates in the three separate views. Then I would use workflows to synchronize the lists after they had made their changes.
I always end up trying to do things programmatically since I am still largely unfamiliar with SP and only seem to hit its limitations instead of its strengths. Has anyone tried to do something similar to this? Or do you have any suggestions as to the best way to accomplish this? Best practices? I appreciate all thoughts and comments! FYI I've also posted this on the MS SP forums as well to cast a wider net...
Thanks,
Sabrina
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这种情况下,您最好采用自定义解决方案。 Web 部件将是提供自定义界面的绝佳选择。
数据视图 Web 部件可以完成这项工作,但如果您对 jQuery 解决方案感到满意,它会带来更好的界面。
在代码中,将列表视为数据库,并将其与 Web 部件内的逻辑和界面代码隔离。
In this case, you are better off going with a custom solution. A webpart would be an excellent choice for delivering your custom interface.
A dataview webpart will do the job, but if you feel comfortable with the jQuery solution it would make for a nicer interface.
In your code, treat the lists as you would a database and isolate it from the logic and interface code within the webpart.