1

私は最近 SPEAK ダイアログで遊んでいます。これまでのところ気に入っていますが、問題に遭遇しました。URL パラメータに itemID を渡して、このアイテムの子をリスト コントロールに表示したいと考えています。

私のアプローチは、SearchDataSource を作成し、javascript を介してフィールド「rootItemId」を設定することでした。これはうまくいかないようです。PageCode で SearchDataSource の rootItemId にアクセスする方法はありますか?

4

2 に答える 2

3

私が最近使用している別の方法は、ここで Anders Laub の JSON データソース コントロールを使用することです。http://laubplusco.net/creating-simple-sitecore-speak-json-datasource/ .

次に、JavaScript PageCode から Ajax 呼び出しを実行し、JSON 結果アイテムを追加してリスト コントロールにデータを追加できます。リスト コントロールは、JSON データソースの Json プロパティにバインドされます。

$.ajax({
                url: "/api/sitecore/RolePermissions/GetAllRoles",
                type: "POST",
                context: this,
                success: function (data) {
                    var json = jQuery.parseJSON(data);

                    for (var i = 0; i < json.length; i++) {
                        var obj = json[i];
                        this.JsonDS.add(obj);
                    }
                }
            });
于 2014-11-26T09:11:57.120 に答える
1

私はクエリでこれを行うことができました。pageCode:

public class SelectTitle : PageCodeBase
    {
        //Fetches DataSource as rendering
        public Rendering DataSource { get; set; }

        public override void Initialize()
        {
            var articleid = WebUtil.GetQueryString("article");

            if (!String.IsNullOrEmpty(articleid))
            {
                //Set the query.
                this.DataSource.Parameters["query"] =
                    String.Format("fast:/some/path/*[@@id = '{0}']/Elements/*[@@templateid = '{1}']", articleid, '{guid}');
            }
        }
    }
于 2014-11-25T11:42:56.517 に答える