如何从客户端.ascx使用控件ID并在服务器端使用它ascx.cs(ASP.NET)

时间:2015-04-02 09:25:34

标签: c# asp.net

我的.acsx中定义了一个ASP.NET控件,服务器端的一些代码在我的.cs中检查它,如果数据输入无效,则创建一个新的自定义验证器。

我正在尝试在控件旁边显示错误消息,但我无法将ControlToValidate属性设置为控件的ID。 Visual Studio突出显示ContactTelephoneTextBox并显示错误:

  

无法转换来源类型

这是.cs

中的自定义验证程序
Page.Validators.Add(new CustomValidator()
{
    Display = ValidatorDisplay.Dynamic,
    ControlToValidate = ContactTelephoneTextBox, 
    ID = "phoneInvalid",
    IsValid = false,
    ErrorMessage = "Please enter a valid phone number.", 
    field",
});

在我的.ascx

<div id="ContactTelephone">
    <asp:Label ID="ContactTelephoneLabel" AssociatedControlID="ContactTelephoneTextBox"
        CssClass="required formFont2015 formLabel2015" runat="server">Contact number</asp:Label>
    <asp:TextBox ID="ContactTelephoneTextBox" CssClass="boxStyle2015" runat="server"></asp:TextBox>
</div>

1 个答案:

答案 0 :(得分:0)

ControlToValidate期望字符串不是控件,所以这应该有效:

Page.Validators.Add(new CustomValidator()
{
    Display = ValidatorDisplay.Dynamic,
    ControlToValidate = ContactTelephoneTextBox.ClientID, 
    ID = "phoneInvalid",
    IsValid = false,
    ErrorMessage = "Please enter a valid phone number.", 
    field",
});