我使用自编程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开始,每个模型只有一个增量。
需要帮助......
答案 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