自定义WebControl类中的C#Validation控件

时间:2016-09-23 14:21:13

标签: c# asp.net .net validation

我有从WebControl类继承的自定义类,我实际上是以编程方式构建带有Web服务器控件的表单。我的目标是能够向此表单添加验证控件,最终将其呈现为string,我将在其中返回到Web服务调用者。

(注意:调用此网络服务的网页是Cold Fusion页面.cfm,而不是典型的.aspx.ascx页面

documentation州:

  

验证控件可以与您放置的任何控件一起使用   ASP.NET网页,包括HTML和Web服务器控件。

首先,甚至可以通过.Net的验证Web服务器控件以这种方式实现验证,因为我在Microsoft的文档中没有看到任何指示?

如果是这样,简单地渲染验证控件是不够的,因为它不会返回任何ViewState数据,也不会返回在表单帖子上处理客户端验证的客户端脚本。也许这就是ScriptManager会发挥作用的地方?

我已经包含了我的代码,用于呈现以编程方式构建表单以进行说明。

StringWriter stringWriter = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(stringWriter);
// Build <form> using my custom FormBuilder class
FormBuilder form = new FormBuilder() { Method="POST", ID="frmTest" };
// Add TextBox web server control
TextBox txtCertificate = new TextBox() { ID = "txtCertificate" };
// Add validator and associate to TextBox
RequiredFieldValidator rfvCertificate = new RequiredFieldValidator() { ControlToValidate = txtCertificate.ID, ErrorMessage = "Certificate required." };
// Add submit button
Button btnSubmit = new Button() { ID = "btnSubmit", Text = "Submit" };
// Bind the server controls to the form control
form.Controls.Add(txtCertificate);
form.Controls.Add(rfvCertificate);
form.Controls.Add(btnSubmit);
// Finally, return the rendered string
form.RenderControl(writer);
return writer.InnerWriter.ToString();

0 个答案:

没有答案