3

私は今日までケンティコを問題なく使用してきました。これが私の問題です

ユニセレクターでカスタムテーブルを使いたいです。

私が問題に遭遇した方法は、SiteManager->Users Advanced フィルターのように、カスタム フォーム コントロールを使用する必要があることでした。ポップアップを開く役割の追加があり、すべての役割のリストが表示されます。

この Web パーツは Uniselector を使用します

<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"

これは機能しません

どんな助けでも大歓迎です。前もって感謝します。

4

3 に答える 3

10

バージョン 7 以降、以下を使用できます。

ObjectType="customtableitem.namespace.customtable"

それはそのようになります

ObjectType="customtableitem.customtable.SampleTable"

サンプル カスタム テーブル用 (企業サンプル サイトから)。

他にご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-03-27T08:32:57.953 に答える
1

残念ながら、UniSelector は設計上 Kentico オブジェクト タイプを必要とし、カスタム テーブルでは機能しません。

ただし、基本的に 3 つの回避策があります。

  1. UniSelector を使用する代わりに、カスタム フォーム コントロールを開発できます ->開発者ガイド - フォーム コントロールの開発
  2. 組み込みのドロップダウン リストコントロールを使用する
  3. UniSelectorフォーム コントロールを変更ます。ファイル ~\CMSAdminControls\UI\UniSelector\UniSelector.ascx.cs の LoadObjects() メソッドで DataSet を読み込みます。
于 2013-03-26T14:37:18.747 に答える
0

uniselector.ascx を変更しました。この CMSAdminControls を使用して、更新時に kentico が上書きできることに注意してください。

私はこのアプローチを使用して成功を収めました 新しいページを次のように作成しました

  1. CustomUniSelector.ascx
  2. CustomSelectionDialog.ascx

メソッド Loadobject を次の URL に変更します ~/CMSAdminControls/Mycustomcontrol/CustomSelectionDialog.aspx

CustomSelectionDialog.ascx.cs の LoadControls() メソッドを変更するよりも

CMSObjectHelper.GetObject() メソッドはカスタム テーブルからデータを取得しないため、カスタム テーブルからデータを取得するための新しいメソッドが追加されました

于 2013-03-26T15:25:52.307 に答える