您的位置:首页 > 编程语言 > ASP

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

2008-10-09 23:57 183 查看
label --属性

tooltip

Cssclass

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

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

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

TextBox


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


*设置控件焦点

.Focus方法

Page.Focus();

HtmlForm控件的DefaultFocus()

**

PostBackUrl

Page.PrePage 来获取前一页面。

***

Form:defaultButton.

***

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

添加Page.IsValid的验证。

***

验证控件的Text属性可以是HTML代码

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

SetFocusOnError属性,在发生错误的时候,表单焦点自动转移

Void Page_PreRender()

{

Foreach(BaseValidator val in Page.Validators)

{

WebContorl = //获取每个验证控件的关联控件。

If (!Val.IsValid)

{

//设置控件颜色。

}

}

}

***

禁用验证控件

Causevalidation false

***

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"

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

可以对dropdownlist进行验证。

***

function valComments_ClientValidate(source,args)

{

if(args.Value.length > 10)

args.IsValid = false;

else

args.IsValid = true;

}

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)

{

if (args.Value.Length > 10)

args.IsValid = false;

else

args.IsValid = true;

}

***

ValidateEmptyText ="true"

可以对空字符串进行验证。

CustomValidator ControlToValidate属性不是必须的。

当提交表单的时候,可以使用CustomValidator1_ServerValidate进行验证。

*** 自定义验证控件

public class LenghtValidator : BaseValidator

{

private int _maxMumLenght = 0;

public int MaxMumLenght

{

get { return _maxMumLenght; }

set { _maxMumLenght = value; }

}

protected override bool EvaluateIsValid()

{

String value = this.GetControlValidationValue(this.ControlToValidate);

if (value.Length > _maxMumLenght)

return false;

else

return true;

}

}

*** 回调

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐