【发布时间】:2011-03-30 13:00:39
【问题描述】:
我有一个 HomePage.aspx 表单,其中包含一个空的 asp:Panel,一个下拉列表让用户选择一个 SPFielType... 在索引更改时,我的 HomePage.aspx.cs 页面将选择文本并加载用户控件在面板内,此用户控件将根据用户选择的 spfieldtype 和调用 validateForm() 函数的按钮生成一个控件...我的问题是 validateForm() 中的 Page_ClientValidate() 函数找不到验证器,我也试图给一个组名,但仍然无法正常工作。
当我将按钮放在我的 aspx 页面中(不动态呈现)时,它正在验证我的页面。(<asp:Button ID="submitbutton" Text="Validate" runat="server" />)。
但是当我动态渲染它时,无法验证表单..这就是我想要做的:
protected override void CreateChildControls()
{
try
{
fieldRenderingControl = this.CreateFieldRenderingControl(this.FieldType);
this.Controls.Add(fieldRenderingControl);
Button button = new Button();
button.UseSubmitBehavior = false;
button.Text = "ValidateButton";
button.ID = "ValidateButton";
button.OnClientClick = "validateForm()";
this.Controls.Add(button);
RequiredFieldValidator newValidator = new RequiredFieldValidator();
newValidator.Text = "***";
newValidator.ID = "valideee";
newValidator.EnableClientScript = true;
newValidator.Enabled = true;
newValidator.SetFocusOnError = true;
newValidator.Display = ValidatorDisplay.Dynamic;
newValidator.ControlToValidate = fieldRenderingControl.ID;
this.Controls.Add(newValidator);
}
catch (Exception ex)
{
}
}
// CreateFieldRenderingControl() 函数将根据用户选择的参数 fieldType 生成一个控件。
提前致谢。
【问题讨论】:
-
您是否尝试使用诸如 firebug 或 Web Developer 之类的浏览器工具来调试您的 js 代码,以查看它到底哪里出错了。
-
是的,我做到了..他无法识别验证器..我不知道为什么..我还尝试在 SPFIeld 的控件上添加验证器,但没有解决方案..
标签: c# javascript asp.net sharepoint user-controls