为了访问default.aspx网页的新功能,我们需要在该类的oninit部分添加事件处理程序:
(图7)
如上图所示,storeselectorchanged事件出现在了default.aspx网页上。下面我们赋予它一个功能。我将在default.aspx网页上添加6个标签,随dropdownlist的变化显示值:
图8)
现在我们来编写事件。
美观是intellisense是intellisense认可定制的eventarg类属性的原则:
(图9)
最终的事件函数如下所示:
#code
private void storeselector1_storeselectorchanged(object
sender, pubs.controls.storeselectorcommandeventargs e)
{
label1.text = e.stor_id;
label2.text = e.stor_name;
label3.text = e.stor_address;
label4.text = e.city;
label5.text = e.state;
label6.text = e.zip;
}
#end code
现在我们对该项目进行测试。该网页一加载,读者的头脑中可能会闪现出这样的念头:它有问题,但我向你保证保证,该项目没有任何问题。如果想在网页一加载时就触发该事件,我们必须通过设置dropdownlist控件中有选择的索引属性在已经创建的控件中进行设置。
(图10)
只要我们从dropdownlist中选择另一个store,标签就会发生变化:
(图11)
现在我们使表单加载到第一个记录。我们在storeselector控件上添加下面的属性:
#code
public int selectedindex
{
get{ return storelist.selectedindex; }
set
{
if(!page.ispostback)
{
binddata();
}
if(value < storelist.items.count)
{
storelist.selectedindex = value;
onstoreselectorchanged(
new storeselectorcommandeventargs
(data.tables["stores"].rows[value].itemarray[0].tostring(),
data.tables["stores"].rows[value].itemarray[1].tostring(),
data.tables["stores"].rows[value].itemarray[2].tostring(),
data.tables["stores"].rows[value].itemarray[3].tostring(),
data.tables["stores"].rows[value].itemarray[4].tostring(),
data.tables["stores"].rows[value].itemarray[5].tostring()));
}
}
}
#end code
然后设置default.aspx中page_load事件的属性:
#code
private void page_load(object sender, system.eventargs e)
{
// 用户初始化网页的代码
if(!page.ispostback)
{
storeselector1.selectedindex = 0;
}
}
#end code
运行该项目时,它就会将表单加载到第一个记录。
小结
希望这篇文章能够对广大读者有一定的帮助。这种类型的web应用程序的开发几乎没有什么限制,只要设计得当,我们创建的每个web控件可以在整个web应用程序中使用。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器