如何验证Web零件属性值?
-
16-10-2019 - |
题
自定义的Web部件具有自定义的Web部件属性。当用户更改属性值(或保存属性时)时,我想使用自定义服务器端代码进行验证。那可能吗?我可以在描述发生的问题的工具窗格中显示错误消息吗?
示例:我有一个网络部分,用户需要输入列表名称(在属性中)。我想检查是否存在此名称的列表。
解决方案
您可以创建一个自定义编辑器,该编辑器可以创建一个自定义界面,并在其中验证输入。看一下这个: Web零件属性 - 第2部分 - 编辑器零件
其他提示
我希望这可以为您提供帮助,尽管我尚未对其进行测试。您可以在这里找到一个示例: http://www.sharepoint-tips.com/2010/06/validating-web-part-properties.html
private string _webPartContentLink = null;
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true)]
[System.ComponentModel.Category("Services")]
[WebDisplayName("Enter WebPart Content Link")]
[WebDescription("Enter WebPart Content Link")]
public string WebPartContentLink
{
get
{
if (_webPartContentLink == null)
{
_webPartContentLink = string.Empty;
}
return _webPartContentLink;
}
set
{
if (!value.StartsWith("http://"))
throw new WebPartPageUserException("The WebPart Content Link is not valid");
}
_webPartContentLink = value;
}
}
除了Wictor所说的话外,请记住在使用自定义或开箱即用的ASP.NET验证器时定义自己的验证group,这样,您就不会从其他验证控件中获得干扰,该验证控件可能会在同一页面上进行帖子。回来(也许是您的书Wictor的主题?:-)
您还可以使用TextBox和ASP.NET验证控制,例如RegulareXpressionValidator创建自定义编辑器部分。这为您提供了对属性的客户端验证。我在该解决方案中看到的唯一缺点是自定义编辑器零件总是显示在顶部(相当笨拙的...)。
请参阅这篇MSDN文章以获取演练: http://msdn.microsoft.com/en-us/library/hh228018.aspx#y4419