可能であれば、Kenticoのベストプラクティスを使用してカスタムモジュールを開発しようとしています。私はhttps://docs.kentico.com/k10/custom-development/creating-custom-modulesに記事を続けてきましたが、次のような場合には少しの方向性がありました。Kentico 10:カスタムモジュール、ユニグリッドなど
1 - カスタムUniGridを扱う場合、私はEditActionUrlでパラメータを渡すことができませんでした。私の理解から、 "〜/ CMSModules/VendorOrders/EditVendorOrder.aspx?VendorID = {0}"という私のEditActionUrlは常に '{0}'を取りますが、Columnsプロパティで宣言された最初の列は、 'としてリテラル。これを動作させる唯一の方法は、適切なエディタページにResponse.Redirect()を使用してカスタムOnActionハンドラを作成することですが、これは私にとってベストプラクティスではありません。
ASPX:
<cms:UniGrid ID="gridCurrentOrders" runat="server" OrderBy="Name"
Columns="VendorID,Name,ItemCount,TotalQuantity,TotalCost"
EditActionUrl="~/CMSModules/VendorOrders/EditVendorOrder.aspx?VendorID={0}">
<GridActions Width="50">
<ug:Action Name="edit" Caption="$General.Edit$" FontIconClass="icon-edit" FontIconStyle="allow" />
</GridActions>
<GridColumns>
<ug:Column source="Name" caption="Vendor" width="50"></ug:Column>
<ug:Column source="ItemCount" caption="Item Count" width="25"></ug:Column>
<ug:Column source="TotalQuantity" caption="Total Qty" width="25"></ug:Column>
<ug:Column source="TotalCost" caption="Item Cost" width="100%"></ug:Column>
</GridColumns>
</cms:UniGrid>
コードの後ろ: - カスタムモジュールUIページ用の組み込みテンプレートを使用している場合、あなたは、単にチェックすることができ
protected void Page_Load(object sender, EventArgs e)
{
// Calculate which SKUs need to be reordered as follows:
// When [AvailableItems] + [Amount unshipped already on an open vendor order] is at or less than [ReorderAt], reorder [ReorderQuantity]
gridCurrentOrders.DataSource = SKUInfoProvider.GetSKUs()
.Source(sku => sku.Join<VendorInfo>("SKUVendorID", "VendorID"))
.Where("SKUAvailableItems <= SKUReorderAt")
.GroupBy("VendorID", "Name")
.Columns("VendorID, Name, count(SKUID) as ItemCount, sum(SKUReorderQuantity) as TotalQuantity, sum(SKUVendorCost * SKUReorderQuantity) as TotalCost")
.Result;
}
2ここでは私の関連するソースです"Breadcrumbsを表示"ボックスは、一見明らかな理由から、Type = "URL"のときは何もしません。カスタム.aspxモジュールページにブレッドクラムを結ぶ標準的な方法はありますか?
TIA、-Keith
私は運がないと次のことを試みました。私は何が欠けていますか? '[たUIElement( "VendorOrder"、 "EditVendorOrder")] [ブレッドクラム] [ブレッドクラム(0、のTargetURL = "〜/ CMSModules/VendorOrders/VendorOrderList.aspx"、テキスト= "ベンダー注文")] [ブレッドクラム [Breadcrumb(1、Text = "Edit Vendor Order"、NewObject = true)] [EditedObject(VendorOrderInfo.OBJECT_TYPE、 "VendorOrderID")] [編集] [編集] [仕入先の順序]、[ExistingObject = true] – Keith
私が見つけた唯一の違いは、私がCMSPageから直接継承しているということです。これは、一方、私はこの属性を使用して見つかった例はCMSContentPage(CMSPageを継承する)から継承しています。 – Keith
Currency_Edit.aspxを見ると、別のレンチを投げるだけで、親ブレッドクラムをCurrency_List.aspxとして設定しようとしているように見えますが、ダッシュボードのページにアクセスすると、ブレッドクラムには "Multistore Configuration => "US Dollar"と表示されます。ブレッドクラムは、私が期待していたように正確に動作しないようです。 – Keith