как создать пользовательский элемент управления для текстового поля - PullRequest
0 голосов
/ 14 сентября 2010

Hai Freinds

До сих пор я использовал эту кодировку для создания собственного элемента управления в качестве моего знания в предыдущем посте. Я не знаю, правильно это или нет. Мне нужна дополнительная помощь по этому поводу. Пока яЯ использовал эту кодировку appcode-> Number.cs в том смысле, что я использовал эту кодировку далее, что я должен делать: мои требования состоят в том, чтобы я перетаскивал текстовое поле в элементе управления, в который нужно ввести только номер.для справки см. мой предыдущий пост: http://www.eggheadcafe.com/community/aspnet/2/10200401/how-to-create-a-dll-file-for-the-textbox-with-some-requriments.aspx.i нужно в веб-приложениях

using System;  
using System.Data;  
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;    
using System.Web.UI;    
using System.Web.UI.HtmlControls;    
using System.Web.UI.WebControls;    
using System.Web.UI.WebControls.WebParts;    
using System.Xml.Linq;

/// <summary>     
/// Summary description for Number    
/// </summary> 
public class Number : TextBox    
{    
    protected override void OnKeyPress(KeyPressEventArgs e)     
    {    
        base.OnKeyPress(e);     
        if (e.KeyChar >= '0' && e.KeyChar <= '9')     
        {    
            e.Handled = false;        
        }   
        else 
        {    
            e.Handled = true;     
        }  
    }   
}

1 Ответ

3 голосов
/ 14 сентября 2010

Мы создали такой же тип управления для наших нужд. Мы использовали файл JS для этого. Следующая функция допускает только цифры.

Пожалуйста, используйте эту ссылку для создания пользовательского элемента управления http://www.codeproject.com/KB/custom-controls/CreateNumTextBoxControl.aspx

   function CheckOnlyInteger(e, sender, allowNegative) {
    e = e || window.event;
    //var key = (window.event) ? e.keyCode : e.which;
    var key = e ? e.keyCode : e.which;
    //alert(key);
    if (e.shiftKey) {
        if ((key > 47 && key < 58) || (key == 192) || (key >= 37 && key <= 39) || key == 0)     {
        return false;
      }
   }
   if ((key >= 48 && key <= 57) || // 0-9 numbers
    (key >= 35 && key <= 40) || // Left, Up, Right and Down
    key == 8 || // backspaceASKII
    key == 9 || // tabASKII
    key == 16 || // shift
    key == 17 || // control
    (key >= 96 && key <= 105) || (key == 46)) // || // Home  key == 46) // dotASKII
{
    return true;
}
 else if ((key == 45) && (allowNegative == 'true')) { // dash (-)       
    if (sender.value.indexOf('-') > -1) {
        return false;
    }
     else {
        if (sender.value.indexOf('-') == 0) {
            return true;
         }
         else {
            sender.value = sender.value.replace('-', '');
            sender.value = "-" + sender.value;
            return true;
         } //alert(key + ' ' + sender.value + ' ' + allowNegative);    alert((key == 45) && (allowNegative == true));
    }
}
else
    return false;
 }


  public partial class ANTextBox: System.Web.UI.WebControls.TextBox 
    {
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        ClientScriptManager scriptMananger = this.Page.ClientScript;
        string resourceFilePath = "TBControlLibrary.Resources.AlphaNumeric.js";

        scriptMananger.RegisterClientScriptInclude("ANTextBox", scriptMananger.GetWebResourceUrl(this.GetType(), resourceFilePath));

        if (this.Type == TextBoxType.Integer)
        {                
            if (_AllowNegative) { this.Text = "-"; }
            this.Attributes.Add("onkeydown", string.Format("return CheckOnlyInteger(event,this,'{0}');", _AllowNegative.ToString().ToLower()));               
        }
     }
...