【问题标题】:Populate dropdownlist with data from sitecore to edit the item使用来自 sitecore 的数据填充下拉列表以编辑项目
【发布时间】:2015-08-19 06:55:43
【问题描述】:

很抱歉描述太长,但有必要描述我的问题。我制作了一个网络表单,工作人员可以在其中编辑他们的详细信息。例如地址详细信息。

因此,使用以下代码向用户显示用于编辑的数据。

<p>Address</p>
<asp:TextBox runat="server" ID="txtBoxAdd"></asp:TextBox>
<p>City</p>
<asp:TextBox runat="server" ID="txtBoxCity"></asp:TextBox>
<p>Country</p>
 <asp:TextBox runat="server" ID="txtBoxCountry"></asp:TextBox>

后端

txtBoxAdd.Text = addressItem["address"];
txtBoxCity.Text = addressItem["city"];
txtBoxCountry.Text = addressItem["country"];

当用户点击Save 按钮时,项目进入编辑模式。 addressItem.Editing.BeginEdit(); 并使用文本框中的值更新字段。

现在 addressItem 和字段 country, addressItem["country"] 是 sitecore 中的一个下拉菜单。使用源作为(addressItem 的模板):

我可以在前端显示这个下拉菜单吗?填充了来自 sitecore 的所有值。

我的想法是制作一个下拉列表并将项目/sitecore/content/Site Config/Constants/Countries 的所有子项添加到其中。但我想可能有更好的解决方案?

【问题讨论】:

  • 为什么不使用 Sitecore 页面编辑器?还是应该在 CD 上工作?
  • 要求不使用页面编辑器。
  • @JanBluemink 原因是在使用 Sitecore 页面编辑器时,页面编辑器栏出现在页面顶部。是否有一些原因要隐藏此栏并仍然在页面编辑器模式下编辑项目。
  • 鉴于您需要使用服务器控件的方向,可能没有比这更好的解决方案了。最好填充下拉列表,然后将所选值存储在保存按钮处理程序中。唯一的改进是从字段项中读取源字段。
  • 我不认为解决方案是在这种情况下的页面编辑器,似乎 OP 将有关用户的数据存储为 Sitecore 项目,然后需要从前端进行编辑(CD实例)可能来自用户登录后的个人资料页面。

标签: c# asp.net sitecore


【解决方案1】:

Sitecore 方式:使用页面(体验)编辑器。最好使用这种方式,您将获得 Sitecore 的好处,并且开发会更快更容易。

ASP.Net WebForms 方式:使用 DropDownList 数据源。比如here

【讨论】:

  • 当我使用页面编辑器时出现在页面顶部的栏是什么,是否有可能隐藏它。
  • 当然,为此类用户创建特定角色,并在 Core 数据库中的项目上配置安全访问权限以隐藏您需要的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2017-09-18
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
相关资源
最近更新 更多