asp+中文教程(三)-- 服务器端控制(一)
2024-05-04 11:06:26
供稿:网友
上次讲了一些有关asp + 服务器端控制的内容,现在来详细讲一下。asp + 服务器端控制是微软新提出的概念,它的实现是基于微软的.net框架,它实际上是一种特殊的html元素,服务器端与它是交互的关系,在生成这些元素后不但能接受它们的值,还可以动态控制它们,以完成一些很cool的功能。下面列出所有asp + 目前支持的所有28个服务器端控制及其具体用法。
1、 adrotator : 广告轮换服务器端控制,它的具体行为是在指定的xml文件里定义的,如下:
<advertisements>
<ad>
<imageurl>/quickstart/aspplus/images/banner1.gif</imageurl>
<navigateurl>http://www.microsoft.com</navigateurl>
<alternatetext>microsoft.com</alternatetext>
<keyword>computers</keyword>
<impressions>80</impressions>
</ad>
</advertisements>
属性的含义:
<imageurl>: 要显示得图片绝对或相对路径。
<navigateurl>: 点击图片所指向的url,如果为空则图片不能被点击。
<alternatetext>: 鼠标移动到图片上所显示的提示信息。
<keyword>: 指定改广告页面的过滤关键字。
<impressions>: 该广告的显示百分比,这个数值越高,显示的次数越多。
2、 button: 这个好理解,类似于传统表单中的button,但用法稍有不同,具体用法我就不祥述了。
3、 calendar: 一个很方便的日历控制,这样就不用再用javascript费劲编了,还得计算闰年什么的,要多烦有多烦,看下面的例子:
<html>
<head>
<script language="c#" runat="server">
void date_selected(object s, eventargs e) {
label1.text = "selected date is: " + calendar1.selecteddate.toshortdatestring();
}
</script>
</head>
<body>
<h3><font face="verdana">calendar example</font></h3>
<form runat=server>
<asp:calendar id=calendar1 onselectionchanged="date_selected" runat="server" />
<p>
<asp:label id=label1 runat="server" />
</form>
</body>
</html>
这个控制带有一个属性selectionmode,它的具体属性值如下:
day : 可以选择任意一个单独的日子。
dayweek: 可以选择一天或一个星期。
dayweekmonth: 可以选择一天或一个星期或一个月。
none: 不能选择日期。
4、 checkbox : 检查框嘛,没什么好说的,但有一点不同,那就是如果它的autopostback属性设为真,则点选它时可以提交到服务器端。
5、 checkboxlist : 顾名思义,一组可多选的检查框列表,它有两个重要的属性,repeatlayout和repeatdirection,控制这个列表的布局,设成table则该列表以表格为底,如果设成flow,则没有表格,repeatdirection默认为vertical,垂直排列,如果设为horizontally,则水平排列。
6、 comparevalidator :进行两个服务器端控制的比较。它有三个不能缺少的重要属性:controltovalidate , controltocompare 决定要比较那些控制,operator决定比较的方式,是等于、不等于、大于、小于等。具体实现看下面的例子:
comparevalidator1.aspx
<%@ page clienttarget=downlevel %>
<html>
<head>
<script language="c#" runat="server">
void button1_onsubmit(object sender, eventargs e) {
if (page.isvalid) {
lbloutput.text = "result: valid!";
}
else {
lbloutput.text = "result: not valid!";
}
}
void lstoperator_selectedindexchanged(object sender, eventargs e) {
comp1.operator = (validationcompareoperator) lstoperator.selectedindex;
comp1.validate();
}
</script>
</head>
<body>
<h3><font face="verdana">comparevalidator example</font></h3>
<p>type a value in each textbox, select a comparison operator, then click "validate" to test.</p>
<form runat=server>
<table bgcolor="#eeeeee" cellpadding=10>
<tr valign="top">
<td>
<h5><font face="verdana">string 1:</font></h5>
<asp:textbox selected id="txtcomp" runat="server"></asp:textbox>
</td>
<td>
<h5><font face="verdana">comparison operator:</font></h5>
<asp:listbox id="lstoperator" onselectedindexchanged="lstoperator_selectedindexchanged" runat="server">
<asp:listitem selected value="equal" >equal</asp:listitem>
<asp:listitem value="notequal" >notequal</asp:listitem>
<asp:listitem value="greaterthan" >greaterthan</asp:listitem>
<asp:listitem value="greaterthanequal" >greaterthanequal</asp:listitem>
<asp:listitem value="lessthan" >lessthan</asp:listitem>
<asp:listitem value="lessthanequal" >lessthanequal</asp:listitem>
</asp:listbox>
</td>
<td>
<h5><font face="verdana">string 2:</font></h5>
<asp:textbox id="txtcompto" runat="server"></asp:textbox><p>
<asp:button runat=server text="validate" id="button1" onclick="button1_onsubmit" />
</td>
</tr>
</table>
<asp:comparevalidator id="comp1" controltovalidate="txtcomp" controltocompare = "txtcompto" type="string" runat="server"/>
<br>
<asp:label id="lbloutput" font-name="verdana" font-size="10pt" runat="server"/>
</form>
</body>
</html>
7、 customvalidator:自定义比较,作用就是可以进行上述基本比较不能完成的比较操作。这个比较可以运行在服务器端,也可以运行在客户端,如用vbscript或javascript。用法很简单,看例子吧。
customvalidator1.aspx
<html>
<head>
<script language="c#" runat=server>
void validatebtn_onclick(object sender, eventargs e) {
if (page.isvalid) {
lbloutput.text = "page is valid!";
}
else {
lbloutput.text = "page is not valid! :-(";
}
}
bool servervalidate (object source, string value) {
int num = int32.fromstring(value);
if (num%2 == 0)
return true;
else
return false;
}
</script>
</head>
<body>
<h3><font face="verdana">customvalidator example</font></h3>
<form runat="server">
<asp:label id=lbloutput runat="server"
text="enter an even number:"
font-name="verdana"
font-size="10pt" /><br>
<p>
<asp:textbox id=text1 runat="server" />
<asp:customvalidator id="customvalidator1" runat="server"
controltovalidate="text1"
onservervalidationfunction="servervalidate"
display="static"
font-name="verdana" font-size="10pt">
not an even number!
</asp:customvalidator>
<p>
<asp:button text="validate" onclick="validatebtn_onclick" runat="server" />
</form>
</body>
</html>
菜鸟学堂: