由SharePoint:ChangeContentType想到的
最近查看SharePoint的控件,看到了ChangeContentType,反编译了一下代码发现,他就是在加载内容类型后绑定了个Js事件来切换内容类型。
list.Attributes["onchange"] = "javascript:ChangeContentType(\"" + list.ClientID + "\");return false;";
我就看了一下通过内容类型新建项目时(Ribbon),弹出窗体的URL:
/NewForm.aspx?ContentTypeId=0x010200233000740CD5BAC93E134B911210D869427735&IsDlg=1
但是当我们点击列表的下方 添加新项目 时却是不同的URL,没有ContentTypeId,当然弹出的也是默认的内容类型对应的项目。
这样以来产生了个想法:
如果有两个视图,并且视图需要的新建的项目不一样时.
我们完全可以再自定义列表的表单中使用:
document.location.href = "NewForm.aspx?IsDlg=1&ContentTypeId=0x010200508976737abb4f9da0b9a4c0d3a1386d";来切换打开的内容类型。
这样在一个列表的不同视图中,我们就可以直接点击 添加新项目 来添加不同的内容类型项目,而不必通过Ribbon