`
cpsing
  • 浏览: 70860 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

Asp.net 2.0 揭秘---标准控件

阅读更多

label --属性

tooltip

Cssclass

label 控件呈现 <span> 使用AsssociatedControlID 后会以<label>呈现。

literal-----不包含在任何<span>标签内。

备注:可以使用该控件输出动态html。

TextBox

Accesskey-----------Alt+属性值(A、B。。。。)

*设置控件焦点

.Focus方法

Page.Focus();

HtmlForm控件的DefaultFocus()

**<!----><o:p></o:p>

PostBackUrl <o:p></o:p>

Page.PrePage 来获取前一页面。<o:p></o:p>

***<o:p></o:p>

Form:defaultButton.<o:p></o:p>

***<o:p></o:p>

验证控件不是可靠的,所以在验证时候,不只要在页面进行脚本验证,还要在服务器端进行验证。<o:p></o:p>

添加Page.IsValid的验证。<o:p></o:p>

***<o:p></o:p>

验证控件的Text属性可以是HTML代码<o:p></o:p>

<asp:RequiredFieldValidator  Text="<img src='' alt='name'/>"/><o:p></o:p>

SetFocusOnError属性,在发生错误的时候,表单焦点自动转移<o:p></o:p>

<o:p></o:p>

Void Page_PreRender()<o:p></o:p>

{<o:p></o:p>

Foreach(BaseValidator val in Page.Validators)<o:p></o:p>

{<o:p></o:p>

WebContorl = //获取每个验证控件的关联控件。<o:p></o:p>

If (!Val.IsValid)<o:p></o:p>

{<o:p></o:p>

//设置控件颜色。<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

}<o:p></o:p>

<o:p></o:p>

***<o:p></o:p>

禁用验证控件<o:p></o:p>

Causevalidation false<o:p></o:p>

***<o:p></o:p>

 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" <o:p></o:p>

                    ControlToValidate="DropDownList1" ErrorMessage="RequiredFieldValidator" InitialValue="none"></asp:RequiredFieldValidator><o:p></o:p>

可以对dropdownlist进行验证。<o:p></o:p>

***<o:p></o:p>

function valComments_ClientValidate(source,args)<o:p></o:p>

{<o:p></o:p>

    if(args.Value.length > 10)<o:p></o:p>

        args.IsValid = false;<o:p></o:p>

    else<o:p></o:p>

        args.IsValid = true;<o:p></o:p>

}<o:p></o:p>

  protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)<o:p></o:p>

        {<o:p></o:p>

            if (args.Value.Length > 10)<o:p></o:p>

                args.IsValid = false;<o:p></o:p>

            else<o:p></o:p>

                args.IsValid = true;<o:p></o:p>

        }<o:p></o:p>

***<o:p></o:p>

ValidateEmptyText ="true"<o:p></o:p>

可以对空字符串进行验证。<o:p></o:p>

CustomValidator ControlToValidate属性不是必须的。<o:p></o:p>

当提交表单的时候,可以使用CustomValidator1_ServerValidate进行验证。<o:p></o:p>

*** 自定义验证控件<o:p></o:p>

   public class LenghtValidator : BaseValidator<o:p></o:p>

    {<o:p></o:p>

        private int _maxMumLenght = 0;<o:p></o:p>

<o:p></o:p>

        public int MaxMumLenght<o:p></o:p>

        {<o:p></o:p>

            get { return _maxMumLenght; }<o:p></o:p>

            set { _maxMumLenght = value; }<o:p></o:p>

        }<o:p></o:p>

<o:p></o:p>

        protected override bool EvaluateIsValid()<o:p></o:p>

        {<o:p></o:p>

            String value = this.GetControlValidationValue(this.ControlToValidate);<o:p></o:p>

            if (value.Length > _maxMumLenght)<o:p></o:p>

                return false;<o:p></o:p>

            else<o:p></o:p>

                return true;<o:p></o:p>

        }<o:p></o:p>

}<o:p></o:p>

*** 回调<o:p></o:p>

<o:p>
Code
<!---->/// <summary>

    
/// Enables you to perform custom validation on both the client and server

    
/// </summary>

    
public class AjaxValidator : BaseValidator, ICallbackEventHandler

    {

        
public event ServerValidateEventHandler ServerValidate;


        
string _controlToValidateValue;


        
protected override void OnPreRender(EventArgs e)

        {

            String eventRef 
= Page.ClientScript.GetCallbackEventReference(this"""""");


            
// Register include file

            String includeScript 
= Page.ResolveClientUrl("~/ClientScripts/AjaxValidator.js");

            Page.ClientScript.RegisterClientScriptInclude(
"AjaxValidator", includeScript);


            
// Register startup script

            String startupScript 
= String.Format("document.getElementById('{0}').evaluationfunction = 'AjaxValidatorEvaluateIsValid';"this.ClientID);

            Page.ClientScript.RegisterStartupScript(
this.GetType(), "AjaxValidator", startupScript, true);


            
base.OnPreRender(e);

        }


        
/// <summary>

        
/// Only do the AJAX on browsers that support it

        
/// </summary>

        
protected override bool DetermineRenderUplevel()

        {

            
return Context.Request.Browser.SupportsCallback;

        }


        
/// <summary>

        
/// Server method called by client AJAX call

        
/// </summary>

        
public string GetCallbackResult()

        {

            
return ExecuteValidationFunction(_controlToValidateValue).ToString();

        }


        
/// <summary>

        
/// Return callback result to client

        
/// </summary>

        
public void RaiseCallbackEvent(string eventArgument)

        {

            _controlToValidateValue 
= eventArgument;

        }


        
/// <summary>

        
/// Server-side method for validation

        
/// </summary>

        
protected override bool EvaluateIsValid()

        {

            
string controlToValidateValue = this.GetControlValidationValue(this.ControlToValidate);

            
return ExecuteValidationFunction(controlToValidateValue);

        }


        
/// <summary>

        
/// Performs the validation for both server and client

        
/// </summary>

        
private bool ExecuteValidationFunction(String controlToValidateValue)

        {

            ServerValidateEventArgs args 
= new ServerValidateEventArgs(controlToValidateValue, this.IsValid);

            
if (ServerValidate != null)

                ServerValidate(
this, args);

            
return args.IsValid;

        }


    }
</o:p>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics