第三天
学习目的
掌握下拉列表框的用法并理解AutoPostBack属性
理解IsPoskBack及用法
初识DataTable的增加列行与下拉列表框绑定的方法
今天的内容稍多些而且涉及一些比较常用的如IsPostBack及DataTable的基本用法
知识点
IsPostBack在页面onLoad之间是false值而当从服务器回传后该值变为true当页面中的Button或ImageButton等触发事件都会把表单回传到服务器而返回时又会引发onLoad事件为了节省服务器资源有些加载中需进行一次而不需要在回传后多次发生可以用!IsPoskBack来作为条件那么页面第一次加载后以后就不会发生该属性可以帮助你提高程序的性能
DataTable即数据表Net 程序中最常用的类特别是数据库开发中没有该类的程序是不可想象的
先做个小程序来练练手很简单就一个下拉菜单取名dlstWeb在属性的Itmes选项中打开以下对话框添加各项
ASPX中的代码为
< asp:DropDownListid=dlstWebstyle=ZINDEX: ; LEFT: px;POSITION: absolute; TOP: pxrunat=serverWidth=pxAutoPostBack=True>
<asp:ListItemvalue=http://wwwsinacomcn>新浪 </asp:ListItem>
<asp:ListItemvalue=http://wwwsohucom>搜狐</asp:ListItem>
<asp:ListItemvalue=http://wwwcom>网易</asp:ListItem>
</asp:DropDownList>
在下拉框的SelectedIndexChanged事件中的加入代码
privatevoid dlstWeb_SelectedIndexChanged(object sender SystemEventArgs e)
{
ResponseWrite(<script language=javascript>windowopen( +dlstWebSelectedvalue + );</script>);
}
按F运行可是我们发现这下拉框选择时什么事也没发生原来原因是出在下拉框的AutoPostBack属性上把它设为true后再试试一切OK了
下面我们增加些难度下拉框中的内容很多情况下不是事先固定的而是要动态添加这里设计是用一数据表DataTable与之联系起来
另建一文件按上添加一下拉框取名dlstWeb先设AutoPostPack为false否则在刚启动而面就触发SelectedIndexChanged事件弹出窗口就乱飞了
在onLoad事件中添加代码注意DataTable用法及IsPoskBack
DataTable属于SystemData命名空间所以如果页面没预添加可以自行增加这一行
privatevoid Page_Load(object sender
System
EventArgs e)
{
// 用IsPostBack判断只在没有回传时才初始化
// 这样可以防止每次刷新或回传时都执行一次以下代码
// 可以节省服务器的资源了
if (!IsPostBack)
{
DataTable dt = new DataTable();
DataRow dr;
// 在表中增加字段
dtColumnsAdd(WebName typeof(string));
dtColumnsAdd(WebUrl typeof(string));
// 表中增加行
dr = dtNewRow();
dr[WebName] = 新浪;
dr[WebUrl] = http://wwwsinacomcn;
dtRowsAdd(dr);
dr = dtNewRow();
dr[WebName] = 网易;
dr[WebUrl] = http://wwwcom;
dtRowsAdd(dr);
dr = dtNewRow();
dr[WebName] = 搜狐;
dr[WebUrl] = http://wwwsohucom;
dtRowsAdd(dr);
// 把表与下拉菜单绑定数据
dlstWebDataSource = dt;
dlstWebDataTextField = WebName;
dlstWebDatavalueField = WebUrl;
dlstWebDataBind();
// 开始时就把下拉菜单的AutoPostBack设为false
// 防止一开始就乱跳出网页来
dlstWebAutoPostBack = true;
}
}
下面的事件与前面一模一样了
privatevoid dlstWeb_SelectedIndexChanged(object sender SystemEventArgs e)
{
ResponseWrite(<script language=javascript>windowopen( +dlstWebSelectedvalue + );</script>);
}
小结今天的一些知识非常重要为了理解程序的难度并不高但这是以后程序设计的基础所以这些你一定要掌握
VBNET增加字段代码稍有不同如下
// 在表中增加字段
dtColumnsAdd(WebName GetType(String))
dtColumnsAdd(WebUrl GetType(String))
其它都差不多了