Ajax Control Toolkit 34个服务器端控件(4)
来源:互联网 发布:haproxy windows版 编辑:程序博客网 时间:2024/04/30 05:36
11. DropShadow
【功能概述】
阴影效果
【 细节】
(1) Width 单位:px 默认5px
(2) Opacity 不透明度0-1.0 默认.5
【示意代码】
代码示意:
<ajaxToolkit:DropShadowExtender ID="dse" runat="server"
TargetControlID="Panel1"
Opacity=".8"
Rounded="true"
TrackPosition="true" />
12. DynamicPopulate
【功能概述】
能实用Web Service或页面方法来动态的替换控件的内容。调用的方法返回的是一个Html的字符串,作为目标元素的子节点插入其中。
【 细节】
(1)ClearContentsDuringUpdate 替换之前先清除以前的内容(默认True)
(2)PopulateTriggerControlID 触发器绑定的控件 单击时触发
(3)ContextKey传递给Web Service的随机字符串
(4) Web Service方法签名必须符合下面的形式:
[WebMethod]
string DynamicPopulateMethod(string contextKey)
{...}
Note you can replace "DynamicPopulateMethod" with a naming of your choice, but the return
type and parameter name and type must exactly match, including case.
(5) 我们非常欣慰的一点就是BehaviorID="dp1",这种用法是我所期望的。
(6) CustomScript 怎么用呢??This script must evaluate to a string value. ??
【示意代码】
代码示意:
<ajaxToolkit:DynamicPopulateExtender ID="dp" runat="server"
TargetControlID="Panel1"
ClearContentsDuringUpdate="true"
PopulateTriggerControlID="Label1"
ServiceMethod="GetHtml"
UpdatingCssClass="dynamicPopulate_Updating" />
代码示意2:
<asp:Panel ID="Panel1" runat="server" CssClass="dynamicPopulate_Normal">
</asp:Panel> //要扩展的panel
<ajaxToolkit:DynamicPopulateExtender ID="dp" BehaviorID="dp1" runat="server"
ClearContentsDuringUpdate="true"
PopulateTriggerControlID="Label1"
TargetControlID="Panel1"
ServiceMethod="GetHtml"
UpdatingCssClass="dynamicPopulate_Updating">
</ajaxToolkit:DynamicPopulateExtender>
<script runat="server">
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string GetHtml(string contextKey) {
// a little pause to mimic a latent call.
//
System.Threading.Thread.Sleep(250);
string value = "";
if (contextKey == "U") {
value = DateTime.UtcNow.ToString();
} else {
value = String.Format("{0:" + contextKey + "}", DateTime.Now);
}
return String.Format("<span style='font-family:courier new;font-weight:bold;'>{0}</span>", value);
}
</script>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script type="text/javascript">
function updateDateKey(value) {
var behavior = $find('dp1'); //这样使用BehaviorID可是方便多了
if (behavior) {
behavior.populate(value);// 内部实现调用了Service
}
}
Sys.Application.add_load(function() {updateDateKey('G');}); //页面加载时要执行的脚本!
</script>
13. FilteredTextBox
【功能概述】
FilteredTextBox扩展控件用来阻止用户在文本框输入无效字符 。由于这种效果的实现是依赖于deactivating JavaScript(怎么翻译呢?),所以不要期望数据会发送到服务器端进行校验。
【细节】
(1)过滤条件Numbers LowercaseLetters UppercaseLetters Custom
(2)过滤条件也可以是Custom的组合 FilterType="Custom, Numbers"
(3)ValidChars="+-=/*()." Custom要定义这样的有效字符串
(4)这个控件我认为是聊胜于无,我们要把允许输入的数据进行枚举,太难了。事实上,这个控件在任何状态下都是接受中文的。如果使用正则表达式情形或许好些。看它的实现代码还有进一步改进的可能,学习研究中……
【示意代码】
示意代码:
<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
TargetControlID="TextBox3"
FilterType="Custom, Numbers"
ValidChars="+-=/*()." />
在该控件的实现代码中我发现了这样一段,这可能是一个突破口:
特殊键排除代码:
< var scanCode;
if (evt.rawEvent.keyIdentifier) {
// Safari
// Note (Garbin): used the underlying rawEvent insted of the DomEvent instance.
if (evt.rawEvent.ctrlKey || evt.rawEvent.altKey || evt.rawEvent.metaKey) {
return;
}
if (evt.rawEvent.keyIdentifier.substring(0,2) != "U+") {
return;
}
scanCode = evt.rawEvent.charCode;
if (scanCode == 63272 /* Delete */) {
return;
}
}
else {
scanCode = evt.charCode;
}
if (scanCode && scanCode >= 0x20 /* space */) {
var c = String.fromCharCode(scanCode);
if(!this._processKey(c)) {
evt.preventDefault();
}
}
}
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件(4)
- Ajax Control Toolkit 32个服务器端控件
- 细数Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件(一)
- 细数Ajax Control Toolkit 34个服务器端控件
- 细数Ajax Control Toolkit 34个服务器端控件
- 细数Ajax Control Toolkit 34个服务器端控件
- Ajax Control Toolkit 34个服务器端控件 详解
- Ajax Control Toolkit 34个服务器端控件(1)
- Ajax Control Toolkit 34个服务器端控件(2)
- Ajax Control Toolkit 34个服务器端控件(3)
- Ajax Control Toolkit 34个服务器端控件(2)
- SQL Server数据库的集群设计
- Ajax Control Toolkit 34个服务器端控件(3)
- 深入对C#中委托的理解及应用
- Shader 学习笔记 ---Depth of Field 介绍
- Ajax Control Toolkit 34个服务器端控件(4)
- JSP编写WAP输入中文乱码问题
- memcpy函数, strcpy(), memmove().
- oracle修复日志文件
- Ajax Control Toolkit 34个服务器端控件(5)
- EJB3主键类和复合主键
- Ajax Control Toolkit 34个服务器端控件(6)
- 自定义JTabbedPane的标签形状
- Ajax Control Toolkit 34个服务器端控件(7)