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;
}
}
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;
}
}
相关文章推荐
- ASP.NET 2.0中的登陆控件简介(3)
- 道不远人--深入解析ASP.NET 2.0控件开发 第12章前部分试读
- 在ASP.NET 2.0中操作数据之五十三:在Data Web控件显示二进制数据
- Scott Mitchell 的ASP.NET 2.0数据教程之52:为GridView控件添加Checkboxes列
- Asp.net 2.0 自定义控件开发[创建自定义HeaderRow的GridView控件][示例代码下载]
- ASP.NET 2.0中的友好CSS控件适配器的应用 - 用ul、li呈现CheckBoxList和RadioButtonList
- ASP.NET标准控件之Localize控件
- asp.net 2.0中页的生存周期(Lifecycle)和动态控件
- htc 的应用--htc解释:运用css+javascript方便的实现一些控件的特效+结合asp.net 2.0的应用
- ASP.NET 2.0 TreeView 树状控件-父子节点选择javascript脚本
- [导入]Asp.net 2.0 自定义控件开发[创建自定义HeaderRow的GridView控件][示例代码下载]
- Asp.net 2.0 自定义控件开发专题[详细探讨页面状态(视图状态和控件状态)机制及其使用场景](示例代码下载)
- ASP.NET 2.0 - 如何以程控方式动态建立一个 GridView 控件
- ASP.NET 2.0 控件开发速成教程:生成复合控件
- 如何封装JS和CSS文件封装为服务器端控件---ASP.NET 2.0
- ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了!
- ASP.NET 2.0中TextBox服务器控件的ReadOnly和Disabled属性
- ASP.NET 2.0服务器控件之复合控件事件
- ASP.NET 2.0服务器控件开发之基本概念篇--转
- ASP.NET 揭秘 第二十九章 高级控件开发(ASP.MET) 1.Adding Templates to a Control