Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复选框列表自定义Kentico CMS表单用户控件_C#_.net_User Controls_Custom Controls_Kentico - Fatal编程技术网

C# 复选框列表自定义Kentico CMS表单用户控件

C# 复选框列表自定义Kentico CMS表单用户控件,c#,.net,user-controls,custom-controls,kentico,C#,.net,User Controls,Custom Controls,Kentico,我使用了以下两个来源来尝试实现我所需要的: & 我试图用从Db表中提取的值的集合填充列表。然后,我希望Kentico存储所选的值,以便以后通过API使用 page_load事件确保复选框列表包含项目。我想我开始感到困惑的是,我需要如何覆盖值,并且创建这个以逗号分隔的选定值列表来存储在Kentico中是有效的 我已经能够在Kentico中构建它并添加控件,我也很困惑,无法找到关于控件范围字段的含义和上下文以及下一个选项卡上的属性的更多信息 我按照文档中的描述,将控件添加到文档类型的表单中。当我

我使用了以下两个来源来尝试实现我所需要的:

&

我试图用从Db表中提取的值的集合填充列表。然后,我希望Kentico存储所选的值,以便以后通过API使用

page_load事件确保复选框列表包含项目。我想我开始感到困惑的是,我需要如何覆盖值,并且创建这个以逗号分隔的选定值列表来存储在Kentico中是有效的

我已经能够在Kentico中构建它并添加控件,我也很困惑,无法找到关于控件范围字段的含义和上下文以及下一个选项卡上的属性的更多信息

我按照文档中的描述,将控件添加到文档类型的表单中。当我去编辑数据时,我只收到一条消息,说加载控件时出错,我没有得到进一步的信息,我还试着调试Kentico一步一步地运行它,但没有成功跟踪我的问题

我的问题本质上是,我知道我做错了什么,那么如何在Kentico中设置复选框列表用户控件?谁能提供一些演示代码来处理这个问题,或者给我指出正确的方向

编辑:Hi再次

所以我决定回到基础,看看是否可以创建任何表单控件。。。

我按照上面的指南去写。但是,我看到相同的错误出现在文档类型表单上。如果无法加载控件的类型。。。。我还可以提供相关的事件日志

Source: FormEngine

EventCode: LOADFORMCONTROL

UserName: administrator

IPAddress: ::1

EventDescription: Message: Could not load type 'CMSApp.CMSFormControls.TestControl'. 
Stack Trace: 
   at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding)
   at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath)
   at System.Web.UI.TemplateParser.Parse()
   at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType()
   at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)
   at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()
   at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
   at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
   at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean ensureIsUpToDate)
   at System.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath)
   at CMS.FormControls.EditingFormControl.InitializeControl(FormUserControlInfo ci, String controlCodeName, FormFieldInfo ffi, String defaultValue, Object value)
   at CMS.FormControls.EditingFormControl.CreateControl(FormFieldInfo ffi)

Could not load type 'CMSApp.CMSFormControls.TestControl'.
   at System.Web.UI.TemplateParser.ProcessException(Exception ex)
   at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding)
   at System.Web.UI.TemplateParser.ParseString(String text, VirtualPath virtualPath, Encoding fileEncoding)

Could not load type 'CMSApp.CMSFormControls.TestControl'.
   at System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError)
   at System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly)
   at System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData)

这令人难以置信地沮丧,因为实际上没有更多关于创建自定义表单控件的信息,而且我看到的错误信息远远不够。首先,您应该在Site manager中的事件日志中查看有关错误的详细信息


第二,如果您想有一个简单的复选框列表,为什么不使用集成的
多选
表单控件呢。如果在字段设置中选择查询,则可以用查询填充它。

您好,这很有帮助,我找不到Kentico创建的日志。但是,我无法执行多项选择表单控件,因为我要填充的数据来自不同的数据源。此外,事件日志提供的有意义的信息很少,除了它告诉我控件加载失败之外。它告诉您无法加载类型“CMSApp.CMSFormControls.TestControl”。这是一个.NET错误,webcontrol本身无法编译。我建议从一个超级简单的控件(只有默认的框架)开始。从错误消息中还可以看出,您使用的是web应用程序而不是web站点。如果是这种情况,请确保在任何更改后编译整个解决方案。