Umbraco中的自定义自动增量字段

时间:2012-07-31 10:06:46

标签: .net content-management-system umbraco

我使用自编程CMS,但在Umbraco上是新手。我正在使用.net框架4处理 Umbraco 4.7 ,并希望创建一个类似于此的内容结构

MaleModels
|--------------Model (Can be multiple)
                 |----------- Model Id (Problem) 
                 |----------- Name
                 |----------- DOB
                 |----------- etc...

我需要为每个模型创建节点,并希望为每个模型分配唯一的模型ID,但是找不到可用于自动增量字段的任何数据类型(正如我在使用SQL编写自定义.net代码时所做的那样) )。我知道我可以使用@pageId,但我希望Model Id从100开始,每个模型只有一个增量。

需要帮助......

2 个答案:

答案 0 :(得分:1)

一个选项是您可以在自定义库中处理Document.AfterPublish事件,该事件可以在创建后将自动增量值添加到“autoID”字段并再次保存/发布。您可能需要保留当前增量id值的计数器(例如,在上面的“MaleModels”节点中),这样您就不必每次都查询所有模型以找到最高ID。

以下是关于Umbraco活动的博文,可能有助于细节:http://www.bo-mortensen.dk/2011/10/umbraco-more-event-goodness/

答案 1 :(得分:0)

为什么不创建具有数据库的“自定义用户控件”,您可以将第一列创建为自动增量,将第二列创建为NodeId,一旦完成,请将其添加到数据库中在Page_Load()事件上确保检查NodeId是否存在,然后不插入记录。

现在在Umbraco中创建为DataType然后用作属性,当您创建用户控件将使用NodeId插入记录的节点时,用户控件将获得自动增量编号并将生成自动增量并显示到page_load()进入<asp:Label>

每次页面加载都会加热,所以你可以做的就是每次进入数据库时​​都需要检查NodeId是否存在,如果存在则不要插入,否则插入数据库就可以创建你的自动增量,

你需要记住,每次数据库都要加热,只需要确保性能,你需要调查它。

如果您还有其他问题,请告诉我。

由于

ANKUR