2017-05-10 4 views
0

バックエンドのアイテムへのリンクをどのように作成するかを知りたがっています。Sitefinity 10の他のダイナミックアイテムへの内部URLを作成するにはどうすればいいですか

カスタムダイナミックモジュールのすべての項目をリストするダッシュボードウィジェットがありますが、バックエンドで手動で項目をナビゲートするのではなく、URLで内部的にクリック可能/編集可能にする方法が必要です。

これはiFramesや剣道UIなどに依存しているようです。誰もこれについてアドバイスしていますか?

私は同様のプロセスについての言及を見つけることができません!

ありがとうございました!

答えて

1

私は動的なアイテムのために特定のURLを作成することが可能であるとは思わないが、あなたはJS関数を作成し、必要なときに、この機能をJS呼び出すことができます。

function OpenForEdit(data){ 
    var template = '<iframe id="sfEditingWindowFrame" style="width:100%; height:100%;" frameBorder="0" border="0" src=""></iframe>'; 
    this.kendoWindow = jQuery("<div>").append(template).kendoWindow(this.windowOptions).data("kendoWindow"); 
    this.contentFrame = $(this.kendoWindow.wrapper).find("#sfEditingWindowFrame"); 
    $(this.kendoWindow.wrapper).addClass("sfMaximizedWindowWithIframe"); 
    this.contentFrame.prop("src", function() { 
     var src = "/Sitefinity/Dialog/ContentViewEditDialog?ControlDefinitionName="+data.ControlDefinitionName+"&ViewName="+data.ViewName+"&IsInlineEditingMode=true"; 
     return src; 
    }); 
    this.kendoWindow.maximize(); 
    this.kendoWindow.open(); 
    var that = this; 
    this.contentFrame.one("load", function() { 
     var frameHandle = that.contentFrame.get(0).contentWindow; 
     if (frameHandle) { 
      var showMoreActionsWorkflowMenu = true; 
      var hideLanguageList = false; 
      var commandName, params, key, commandArgument, dataItem; 
      var isEditMode = true; 
      commandName = "edit"; 
      params = { 
       IsEditable: true 
      }; 
      key = { 
       Id: data.ItemId 
      }; 
      commandArgument = { 
       languageMode: "edit", 
       language: data.Culture 
      }; 
      dataItem = { 
       Id: data.ItemId, 
       ProviderName: data.ProviderName 
      }; 
      if (frameHandle.createEditingWindow) { 
       frameHandle.createEditingWindow(commandName, dataItem, params, key, commandArgument, function(a, b) { window.location=data.ReturnUrl}, showMoreActionsWorkflowMenu, hideLanguageList); 
      } 
     } 
    }); 
} 

この関数内あなたのようなオブジェクトを渡す必要がありますこれは

var data = { 
    "ItemId": "76a1e9f5-d32e-642d-aa3a-ff0000a20aad", 
    "ControlDefinitionName": "Telerik.Sitefinity.DynamicTypes.Model.Contest.ImageBackendDefinition", 
    "ViewName": "ImageBackendEditView", 
    "ProviderName": "OpenAccessProvider", 
    "Culture": "en", 
    "ReturnUrl": "/Sitefinity/dashboard" 
}; 

動的オブジェクトに関連するこのオブジェクト内のデータを変更するだけで済みます。

+0

ビクター!もう一度ありがとう、私はあなたが返信を期待していた!私は剣道のUIに手がかりがありません。私はSFに初めていたと言いましたが、私は明日これを撮影してお知らせします。私がそれを試してみたら、私は答えを受け入れるでしょう。もう一度アドバイスをいただきありがとうございます! –

+0

ビクター、どのように上記のリソース/ javascriptを見つけましたか?ありがとうございました。 –

+0

私はSitefinityのJavaScriptをどのようにチェックしていたのですか?混乱させる不要なコードを削除しました –

関連する問題