2013-03-22 70 views
3

我一直在使用Kentico没有问题了,而直到今天,这里是我的问题自定义表单向选择在Kentico

我想使用自定义表单向选择。

我是如何进入该问题的,我需要使用自定义表单控件,如在SiteManager->用户高级过滤器中。 我们有添加角色,它打开一个弹出窗口,它显示所有角色的列表。

此web部件采用单向选择

<cms:CMSUpdatePanel ID="pnlUpdate" runat="server"> 
    <ContentTemplate> 
     <cms:UniSelector ObjectType="cms.role" SelectionMode="MultipleTextBox" 
      OrderBy="RoleDisplayName" ResourcePrefix="roleselect" runat="server" 
      ID="usRoles" ShortID="s" AllowEditTextBox="true" AddGlobalObjectSuffix="true" /> 
    </ContentTemplate> 
</cms:CMSUpdatePanel> 

现在,如果我用

ObjectType="cms.role" 

它工作得很好,因为它是系统表

现在如果我用

ObjectType="customtable.country" 

这将不会工作

任何帮助表示赞赏。 在此先感谢。

回答

10

自7版本,你可以使用:

ObjectType="customtableitem.namespace.customtable" 

这将是

ObjectType="customtableitem.customtable.SampleTable" 

的样品自定义表格(来自Corporate sample site)。

如果您有任何其他问题,请随时与我联系。

+0

我们会试试看,如果真是那么简单,那将会非常棒:) – 2013-03-28 04:08:53

+0

嗨,我试过你的解决方案,它非常好,工作正常。 我可以知道如何设置iObjectType.DisplayNameColumn,默认采用ItemGUID,我想在iObjectType.DisplayNameColumn上设置另一个列名。 – 2013-03-28 06:37:42

+0

嗨,设置DisplayNameFormat =“{%DisplayNameColumn%}”。 – rocky 2013-03-28 06:48:27

1

不幸的是,UniSelector通过设计需要Kentico对象类型,它不适用于自定义表格。

然而,大致有三种可能的解决方法:

  1. 您可以开发,而不是使用单向选择自定义表单控件 - 内置下拉列表控制
  2. 修改>Developer's Guide - Developing form controls
  3. 使用UniSelector表单控件 - 您将在文件〜\ CMSAdminControls \ UI \ UniSelector \ UniSelector.ascx.cs中的LoadObjects()方法中加载您的DataSet
+0

嗨菲利普, 感谢您的更新。 我们使用了1分和3分,它做到了预期的效果。 – 2013-03-26 15:00:08

0

我们已经改变uniselector.ascx,牢记kentico可以覆盖它时,它获取更新 使用本CMSAdminControls

我用这个方法并获得成功 创建新页面为

  1. CustomUniSelector的.ascx
  2. CustomSelectionDialog.ascx

更改方法装入对象作为给予 URL〜/ CMSAdminControls/Mycustomcontrol/CustomSelectionDialog.aspx

比变化LoadControls()在CustomSelectionDialog.ascx.cs

CMSObjectHelper方法。getObject()方法没有得到自定义表中的数据,从而增加了新的方法,从定制表中读取数据