使用 kentico API 调用用 SQL 条记录填充 asp 下拉列表
fill asp dropdown list with SQL records by using kentico API calls
好吧,似乎没有人把这个问题的过程说的很完整,连kentico的文档也不是很清楚。我的问题是我在 SQL 中的 table 中有超过 50 条记录,我想将其加载到单个 ASP 下拉列表中(因为填充它是一种不好的做法静态),我是 kentico 的新手,所以我的问题是我需要一个关于从 A 到 Z 的过程的完整解释,从在 kentico 中构建查询,到在视觉中使用它。如果可能,请post一些示例。
另请注意,我见过很多这样的例子:
https://docs.kentico.com/k10/custom-development/developing-web-parts/advanced-web-part-development-scenarios/developing-custom-filters
但这些示例仅向我们展示了最后一步,即使用 DepartmentInfoProvider.GetDepartments();要填充下拉列表,我的主要重点是首先了解他们如何以及在何处创建 DepartmentInfoProvider class。
您应该阅读 creating custom modules。有一节如何将 class 添加到模块。只要您将 class 添加到模块,您就可以生成其信息和信息提供程序 class,然后将这些文件添加到解决方案并使用它们。
Farah,另一个人问了类似的问题:
https://devnet.kentico.com/questions/custom-filter-with-a-drop-down-list-from-the-databse
这将有助于提供有关 Kentico 中的信息和信息提供者的一些信息
为了更具体地满足您的需求,您可以使用 QueryInfoProvider.ExecuteQuery 来使用从您的 table 中选择的 custom Kentico query,或者您可以按照 Anton 的建议进行自定义模块,但如果你是 Kentico 的新手,这对你来说可能有点多。
最后,如果您想要我有一个通用过滤器 Web 部件(只是尚未发布),它使您能够简单地编写一个 SQL 查询,然后定义所选值如何影响您的转发器(您设计 WHERE 条件)。想要就告诉我吧
解决方案比我想象的简单得多,首先我们应该在页面类型中创建一个查询 --> 查询 --> 新查询 --> 指定查询名称和查询文本,查询从数据库中获取数据,其次在视觉中我们必须写:
using System.Data;
private void initializeDropDownList(String queryName, String rowName, DropDownList dd)
{
List<String> listData = new List<String>();
DataSet dataset = new DataQuery("custom.PageType." + queryName).Execute();
foreach (DataRow row in dataset.Tables[0].Rows)
{
listData.Add(row[rowName].ToString());
}
String[] arrayData = listData.ToArray();
foreach (String data in arrayData)
{
if (data.Equals("")) { continue; }
else
{
dd.Items.Add(new ListItem(data));
}
}
}
好吧,似乎没有人把这个问题的过程说的很完整,连kentico的文档也不是很清楚。我的问题是我在 SQL 中的 table 中有超过 50 条记录,我想将其加载到单个 ASP 下拉列表中(因为填充它是一种不好的做法静态),我是 kentico 的新手,所以我的问题是我需要一个关于从 A 到 Z 的过程的完整解释,从在 kentico 中构建查询,到在视觉中使用它。如果可能,请post一些示例。
另请注意,我见过很多这样的例子: https://docs.kentico.com/k10/custom-development/developing-web-parts/advanced-web-part-development-scenarios/developing-custom-filters
但这些示例仅向我们展示了最后一步,即使用 DepartmentInfoProvider.GetDepartments();要填充下拉列表,我的主要重点是首先了解他们如何以及在何处创建 DepartmentInfoProvider class。
您应该阅读 creating custom modules。有一节如何将 class 添加到模块。只要您将 class 添加到模块,您就可以生成其信息和信息提供程序 class,然后将这些文件添加到解决方案并使用它们。
Farah,另一个人问了类似的问题:
https://devnet.kentico.com/questions/custom-filter-with-a-drop-down-list-from-the-databse
这将有助于提供有关 Kentico 中的信息和信息提供者的一些信息
为了更具体地满足您的需求,您可以使用 QueryInfoProvider.ExecuteQuery 来使用从您的 table 中选择的 custom Kentico query,或者您可以按照 Anton 的建议进行自定义模块,但如果你是 Kentico 的新手,这对你来说可能有点多。
最后,如果您想要我有一个通用过滤器 Web 部件(只是尚未发布),它使您能够简单地编写一个 SQL 查询,然后定义所选值如何影响您的转发器(您设计 WHERE 条件)。想要就告诉我吧
解决方案比我想象的简单得多,首先我们应该在页面类型中创建一个查询 --> 查询 --> 新查询 --> 指定查询名称和查询文本,查询从数据库中获取数据,其次在视觉中我们必须写:
using System.Data;
private void initializeDropDownList(String queryName, String rowName, DropDownList dd)
{
List<String> listData = new List<String>();
DataSet dataset = new DataQuery("custom.PageType." + queryName).Execute();
foreach (DataRow row in dataset.Tables[0].Rows)
{
listData.Add(row[rowName].ToString());
}
String[] arrayData = listData.ToArray();
foreach (String data in arrayData)
{
if (data.Equals("")) { continue; }
else
{
dd.Items.Add(new ListItem(data));
}
}
}