2009-07-27/22:12
整天的泡在考研的资料里面,闲暇时就和朋友们大谈特谈NGWS,一天终于被lazy兄一棍子打醒,"都什么年代了,还在谈NGWS",慌忙中赶快重新下载我心目中的"NGWS",装上后,发现今非昔比,这个NGWS已经改名叫Micosoft .Net ,ASP+也堂而皇之的改名为ASP.Net.而且现在不仅window 2000能够安装调试asp.net了,而且连最烂的"瘟酒吧"也可以了,于是发现自已离时代越来越远了.....(台下人:发表什么感叹,还不快入正题)(同时,一不明飞行物突然向飞刀砸来,飞刀立刻倒在血泊中.....)
WEB控件
按照计划我们这一节要谈Web控件,我想了半天也不知道如何定义这个web控件,它比html控件难于理解,毕竟HTML太像原来我们熟悉的东东了。而web控件确与我们平常见到的有很大的出入,不知道大家还记不记得我说过的一句话,那就是ASP.net的程序就像是写VBVC中的窗口,先再这些窗口中加入我们的需要的控件,然后再对这些控件进行操作。如果你学过一点点VBVC的编程,那么理解这个就不难了,ASP.net中的web控件就像是VBVC中的控件一样。我们先在页面中摆好这些控件,然后再通过Page_Load以及其它一些自定义事件来对他们进行控制。我们还是通过看一个实例来了解一下吧。我们先举简单的Label控件吧.
源代码如下:
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
if(!Page.IsPostBack)
{
label3.Text="这是黑体字,并且带下划线";
}
}
</script>
<html>
<head>
<title>测试Label控件</title>
</head>
<body>
<bold>测试Label控件:<br></bold>
<asp:Label id="label1" font-size="9pt" font-bold="true" forecolor="red" runat="server">这是红色粗体的文字</asp:Label><br>
<asp:Label id="label2" font-size="10pt" font-italic="true" forecolor="blue" runat="server" text="这是蓝色斜体的文字" /><br>
<asp:Label id="label3" font-size="11pt" font-underline="true" runat="server" />
</body>
</html>
这段程序执行后的结果是
测试Label控件:
这是红色粗体的文字
这是蓝色斜体的文字
这是黑体字,并且带下划线
看看源代码,再看看程序执行的结果是不是发现Label控件和VB中的Label控件很相近:)
(注:你在你的机器上看到的中文可能是乱码,那么请您打开x:\winnt\microsoft\framework\v1.0.224目录,找到其中的config.web文件,打开它,找到下面的文字:
<globalization
requestencoding="iso-8859-1"
responseencoding="iso-8859-1"
/>
把其中的iso-8859-1改为gb2312,OK,再执行一下程序,中文是不是出来了:)
这里我们用了三种方法来操作Label控件,第一种是类似HTML的闭合标签,将要写的字写在<asp:Label></asp:Label>之间;第二种是用到了Label控件Text属性;第三种,是通过执行Page_Load事件而把文字写进Label控件的。这三种方法都很有用,看你自已的喜欢了,第三种是最常用的啦,以后我们会经常用到.Label控件不光有Text属性来控制它的文字,而且还有font-size等属性来控制字体大小,颜色等属性,这里的例子我都用到了,大家好好看看,相信没有什么问题
我们见过了Label控件的操作,那么我们对web控件有了一个感性的认识,在ASP.net中,一共有28个WEB控件,它们是:
AdRotator Button Calendar CheckBox
CheckBoxList CompareValidator CustomValidator DataGrid
DataList DropDownList HyperLink Image
ImageButton Label LinkButton ListBox
Panel RadioButton RadioButtonList RangeValidator
RegularExpressionValidator Repeater RequiredFieldValidator Table
TableCell TableRow TextBox ValidationSummary
大家可以到我上一节讲的那个站点去具体看一下他们各自的用法,这里我本来想主要讲一下DataGrid,DataLit,ListBox但是他们其中都需要用到Binding知识(这个我们在下一节讲),所以我们主要来看看DropDownList的用法(因为我们上一节是用的select来讲解HTML控件的)
先看一个例子:
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
}
public void sub_click(Object sender,EventArgs e)
{
string chioce;
chioce=ddl.SelectedItem.Text;
show.Text="您选择的是本工作室的<font color=red>"+chioce+"</font>成员";
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<form runat="server">
请选择ASPCN.Com工作室程员:<br>
<asp:DropDownList id="ddl" RunAt="server">
<asp:ListItem>飞刀</asp:ListItem>
<asp:ListItem>大风</asp:ListItem>
<asp:ListItem>Zsir</asp:ListItem>
<asp:ListItem>布丁</asp:ListItem>
<asp:ListItem>亚豪</asp:ListItem>
</asp:DropDownList>
<br>
<asp:Button id="sub" Text="提交" RunAt="Server" OnClick="sub_click" /><br>
<asp:Label id="show" runat="server"/>
</form>
</body>
</html>
它执行显示为:
请选择ASPCN.Com工作室程员:
飞刀 大风 Zsir 布丁 亚豪
如果我选中了其中的飞刀,然后再按下"提交"键,那么显示就是:
请选择ASPCN.Com工作室程员:
飞刀 大风 Zsir 布丁 亚豪
您选择的是本工作室的飞刀成员
DropDownList控件,其实和select差不多,功能也就多那么一点点,但是这个多一点点的功能就是很有用的,这就是我们下一节要学习的Bind,呵呵,是不是想学了:)不急,我们先分析一下这里的程序。
我们用DropDownList控件建立起一个List列表,然后我们选择其中的一个选项,最后按提交键提交。这里我们可以看到处理程序的是sub_click这个事件,这里由名为sub的button控件激发,所用的事件是Onclick,这里和HTML控件所使用的OnServerClick事件是不同的,大家要分清楚。其它的好像没有什么可以说了。呵呵
我们下一节要讲bind,这个是很重要的。