2013-03-22 68 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()方法沒有得到自定義表中的數據,從而增加了新的方法,從定製表中讀取數據