2012-07-26 90 views
0

我正在創建自定義Web控件(文本框),它只允許在文本框中使用整數數據類型。 按鈕提交事件如果文本框中沒有數據,自定義控件應該設置TextBox1.Text = 0,這就是我想要的。這是我寫的代碼。在自定義控件中設置默認值

public class MasIntTextBox : TextBox 
{ 
    private RequiredFieldValidator req; 
    private RegularExpressionValidator regex; 
    public string ValGrp { get; set; } 
    public string IsRequired { get; set; }//give true/yes or false/no values only 

    protected override void OnInit(EventArgs e) 
    { 
     //this.CssClass = "inp-form"; 
     if (IsRequired == "true" || IsRequired == "yes") 
     { 
      req = new RequiredFieldValidator(); 
      req.ControlToValidate = this.ID; 
      req.ErrorMessage = "Enter Numeric Value"; 
      req.Display = ValidatorDisplay.Dynamic; 
      if (!string.IsNullOrEmpty(ValGrp)) 
       req.ValidationGroup = ValGrp; 
      Controls.Add(req); 
     } 
     regex = new RegularExpressionValidator(); 
     regex.ControlToValidate = this.ID; 
     regex.ErrorMessage = "Numeric Value Only"; 
     regex.Display = ValidatorDisplay.Dynamic; 
     regex.ValidationExpression = "^\\d+(\\.\\d+)?$"; 
     if (!string.IsNullOrEmpty(ValGrp)) 
      regex.ValidationGroup = ValGrp; 
     Controls.Add(regex); 
     //base.OnInit(e); 
    } 

    protected override void Render(HtmlTextWriter w) 
    { 
     base.Render(w); 
     if (IsRequired == "true" || IsRequired == "yes") 
      req.RenderControl(w); 
     regex.RenderControl(w); 
    } 
} 

我查了一些事件或方法這一點,但他們得到了btnA_click事件後被解僱。 我是這種新手。 我錯過了任何事件或方法?任何建議都被接受。 在此先感謝...

回答

0

您應該嘗試設置TextBox.LostFocus事件的默認值。該事件在控件(文本框)丟失焦點後立即觸發。

+0

我想在自定義控件類文件中添加代碼,並且如果用戶不專注於文本框,則lostfocus/onblur將不會被觸發。 – LeO 2012-07-26 06:29:40

+0

然後在初始化用戶時向textbox.text =「0」添加默認值控制。如果它的GotFocus事件爲「0」(默認值),則將文本框的值清空爲空字符串(「」)。在LostFocus事件中,檢查值並應用默認值(如果爲空)。 – Umesh 2012-07-26 08:01:26

+0

焦點選項正在工作,但將其初始化爲0,因爲它的文本屬性的代碼隱藏是「」而不是「0」,所以不工作。我正在寫if(string.IsnullorEmpty(this.text)){this.Text =「0」;}。這是真的嗎?在OnInit事件中編寫此代碼是不有效的,因爲如果我不輸入任何內容,點擊事件沒有得到.Text「0」,它只接受「」... – LeO 2012-07-26 09:47:08

相關問題