【问题标题】:Custom list form using sharepoint object model VS 2008使用共享点对象模型 VS 2008 的自定义列表表单
【发布时间】:2009-06-03 07:25:06
【问题描述】:
有没有办法为列表项新表单处理 DropDownSelectedIndexChanged。
假设我有一个名为 Temp 的自定义列表,其中包含 Title、Products(这是一个 DropDownList)和 Color Shade(这是一个 TextBox)。
当我创建一个列表项时,我想从 DropDownList 中选择一个产品,并且在所选索引发生更改时,我想编写
业务逻辑,例如从 Color Shade 列表中获取行并将数据绑定到 Color Shade 的 TextBox。现在我可以说好吧
将创建一个列表项。是否可以使用 VS 2008 共享点对象模型。
【问题讨论】:
标签:
sharepoint
forms
list
【解决方案1】:
您可以向您的母版页添加一个自定义控件,它会递归地遍历您的控件树(从 this.Page 开始)以找到您的下拉列表并附加事件处理程序(它本身在您的自定义控件中定义)。找到 AutoPostBack 属性后,还要在下拉列表中将其设置为 true。
就在事件处理程序中获取文本框的引用而言,您还可以应用遍历控件树的相同方法。
注意,您需要确保在事件处理程序运行之前附加事件处理程序。
贾普
【解决方案2】:
我不确定我是否明白你的意思。
另一种方法(可能工作量更少)是使用 javascript(我建议使用 jQuery 库)在下拉列表的选择发生变化时自动填充您的文本框。一切都将在客户端完成。
贾普
【解决方案3】:
有一些第三方组件可以作为自定义列类型执行此类操作,但如果您是从头开始开发,您可能会发现自定义表单要容易得多。如果您使用完全自定义的 newform.aspx 版本,您仍将使用标准的新项目菜单。
如果您尝试修改标准控件,如果提交的值不在原始列表中,则会遇到安全错误等问题。
如果您不想编写自己的保存代码,使用 css 隐藏标准新表单并使用 javascript 从自定义控件中修改值可以很好地工作。