2012-01-04 75 views
3

我创建了textbox.Let自定义控件说,当文本框的作用是编辑,文本框将呈现相同文本框。另一方面,当文本框是动作鉴于,则文本框将呈现为label.But现在我有一个问题,我怎么能验证我的时候文本框的行动是编辑所需的字段校验文本框呢?下面是我的编码自定义控制和所需的字段校验

[ToolboxData(@"<{0}:cusTextBox runat=""server"" Action=""Edit"" />")] 

public class cusTextBox:TextBox 
{ 
    public string Action 
    { 
     get 
     { 
      String s = (String)ViewState["Action"]; 
      return ((s == null) ? String.Empty : s); 
     } 
     set 
     { 
      ViewState["Action"] = value; 
     } 
    } 

    public override void RenderControl(HtmlTextWriter writer) 
    { 
     if (Action ==gbcCommandVariable.CommandEdit) 
     { 
      base.RenderControl(writer); 

     } 

     else if (Action == gbcCommandVariable.CommandView) 
     { 

      writer.Write(String.Format(@"<span ID=""{0}"" style=""display:inline-block; white-space:inherit"" >{1}</span> ", this.ClientID, this.Text)); 
     } 
    } 

} 

我的前端

   <cc1:cusTextBox ID="cusTextBox1" runat="server" Action="View" ></cc1:cusTextBox> 
      <asp:Button ID="Button1" runat="server" onclick="Button1_Click1" 
       Text="Button" /> 
      <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
       ControlToValidate="cusTextBox1" 
    ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator> 

请帮我.Urgent.THanks

+0

为什么写一个不同的元素会导致验证控件抛出异常,为什么不简单地应用一个使TextBox呈现具有相同外观的样式? – Lloyd 2012-01-04 08:52:18

+0

你能举一些例子吗?:) – user998405 2012-01-04 19:58:31

回答

1

也许

[ValidationProperty("Text")] 
    public class cusTextBox:TextBox 

属性可以帮助你。