【发布时间】:2017-01-04 22:22:54
【问题描述】:
我正在尝试尽可能使用 Kentico 最佳实践来开发自定义模块。我一直在关注https://docs.kentico.com/k10/custom-development/creating-custom-modules 上的文章,但是在以下方面我没有找到什么方向:
1 - 在处理自定义 UniGrid 时,我无法通过 EditActionUrl 传递参数。据我了解,在 Columns 属性中声明的第一列应该是索引为 0 的字符串格式参数,但是“~/CMSModules/VendorOrders/EditVendorOrder.aspx?VendorID={0}”的 EditActionUrl 始终采用“{0}” ' 作为文字。我让它工作的唯一方法是创建一个自定义 OnAction 处理程序,并将 Response.Redirect() 到相应的编辑器页面,但这对我来说并不是最佳实践。这是我的相关来源:
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>
代码背后:
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 - 当使用自定义模块 UI 页面的内置模板时,您可以简单地选中“显示面包屑”框,但是由于看似显而易见的原因,当 Type = "URL" 时这不起作用。是否有一种标准方法可以在自定义 .aspx 模块页面上连接面包屑?
TIA,-基思
【问题讨论】:
标签: c# asp.net customization kentico