使用Kentico 9以自定义形式加载数据

使用Kentico 9以自定义形式加载数据,kentico,Kentico,我搜索了整个网页,没有找到任何好的主题来展示正确的方法 我有一个非常简单的网站,我用Kentico9CMS开发。此web仅包含两个子页面和一个标题,用于在这些子页面和标题之间导航 “主页”子页面包含一个自定义表单,该表单保持与SQL表的连接,SQL表在每次按submit时都会填充某些数据 另一方面,另一个页面通过使用自定义web部件显示存储的数据,该web部件通过使用BizFormItemProvider连接到DB,该对象用作绑定控件中数据的层 现在是我的观点。如果您看到,有一个按钮可以“编

我搜索了整个网页,没有找到任何好的主题来展示正确的方法

我有一个非常简单的网站,我用Kentico9CMS开发。此web仅包含两个子页面和一个标题,用于在这些子页面和标题之间导航

“主页”子页面包含一个自定义表单,该表单保持与SQL表的连接,SQL表在每次按submit时都会填充某些数据

另一方面,另一个页面通过使用自定义web部件显示存储的数据,该web部件通过使用BizFormItemProvider连接到DB,该对象用作绑定控件中数据的层

现在是我的观点。如果您看到,有一个按钮可以“编辑”某一行,我的目的是重定向到“主页”(其中包含表单),并通过QueryString发送试图编辑的行的ID

我无法理解您如何使用ID重新填写表单数据


可能是因为我以前从未使用过CMS,我正在寻找纯ASP.NET之类的开发,但它可能不是正确的开发。

这是您使用Kenticos内置表单应用程序的联系人表单,还是自定义表单?如果是自定义表单,您可以使用包含ID的链接创建转换。如果是业务表单,您仍然可以在页面类型中创建转换(创建新的页面类型并选择“页面类型仅为没有自定义字段的容器”),然后写一个以获取业务表单数据,并使用中继器显示转换后的数据

这是您使用Kenticos内置表单应用程序的联系人表单,还是自定义表单?如果是自定义表单,您可以使用包含ID的链接创建转换。如果是业务表单,您仍然可以在页面类型中创建转换(创建新的页面类型并选择“页面类型仅为没有自定义字段的容器”),然后写一个以获取业务表单数据,并使用中继器显示转换后的数据

习俗 鉴于您的解决方案使用自定义表单输入数据,以及使用自定义web部件列出存储的数据,您还需要使用自定义解决方案来处理数据编辑

在主页上的自定义Web部件中,在加载事件中,可以检索表单数据并设置表单控件上的值

受保护的无效页面加载(对象发送方,事件参数e)
{
//确保表单未被发回,
//防止覆盖输入的数据
如果(!IsPostBack)
{
//从查询字符串中获取表单项ID
var personId=QueryHelper.GetInteger(“personId”,0);
如果(personId>0)
{
//获取业务表单项,并设置表单控件值
var bizFormItem=BizFormItemProvider.GetItem(personId,“customFormClassName”);
txtFirstName.Text=bizFormItem.GetStringValue(“FirstName”,string.Empty);
}
}
}
类似地,单击提交时,可以使用新数据更新现有表单项

protectedvoid btnSubmit\u OnClick(对象发送方,事件参数e)
{
//从查询字符串中获取表单项ID
var personId=queryhelp.GetInteger(“personId”,0);
如果(personId>0)
{
//检索现有的业务表单项,
//并从表单控件值更新它
var bizFormItem=BizFormItemProvider.GetItem(personId,“customFormClassName”);
SetValue(“FirstName”,txtFirstName.Text);
Update();
}
其他的
{
//插入新表单项的代码。。。
}
}
肯蒂科之路 <>你真的应该考虑使用KeTiCo表单引擎来完成这项任务。不要使用自定义表单输入数据,而是使用内置的在线表单Web部件

,例如:

  • 能够通过CMS设置表单布局,并使用替代布局
  • 自动向表单提交者发送确认电子邮件,以及向管理员发送通知电子邮件
要完成任务,您可以选择支持加载现有数据。 在
bizform.ascx.cs
文件中,向
SetupControl
方法添加代码:

protectedvoid SetupControl()
{
如果(停止处理)
{
//现有代码。。。
}
其他的
{
//现有代码。。。
//从查询字符串中获取表单项ID
var personId=queryhelp.GetInteger(“personId”,0);
如果(personId>0)
{
//获取业务表单项,并设置表单控件值
var bizFormItem=BizFormItemProvider.GetItem(personId,“customFormClassName”);
if(bizFormItem!=null)
{
//设置项目ID
viewBiz.ItemID=bizFormItem.ItemID;
}
}
}
}
设置
ItemID
属性后,这将自动将表单切换到编辑模式,而不是插入
模式。单击“提交”按钮将保存对现有表单项的更改。 您不必担心代码中的验证问题,插入数据仍然有效。

Custom 鉴于您的解决方案使用自定义表单输入数据,以及使用自定义web部件列出存储的数据,您还需要使用自定义解决方案来处理数据编辑

在主页上的自定义Web部件中,在加载事件中,可以检索表单数据并设置表单控件上的值

受保护的无效页面加载(对象发送方,事件参数e)
{
//确保表单未被发回,
//防止覆盖输入的数据
如果(!IsPostBack)
{