asp.net Ajax--PopupControl控件使用

简介


Popupcontrol可以弹出任意类型的控件,不管是在服务器控件还是html控件。就是在某控件获取焦点时弹出另外一个控件,进行一些操作后,隐藏弹出的控件。

重要属性


TargetControlID:需要弹出的控件的id
PopupControlID:作为弹出控件的id
Position:弹出控件的位置
OffsetX/OffsetY:弹出控件的位置与默认位置的相对坐标

实例


1 打开vs2005,新建一个AjaxControlToolKit网站,命名为AjaxPopupControl
2 打开默认生成的Default.aspx页面,切换到窗体的设计视图
3 在页面中拽一个UpdatePanel,一个PopupControlExtender,一个TextBox和一个Calendar控件
4 设置PopupcontrolExtender控件的属性,要求当文本框获得焦点时再其右侧弹出Calendar控件,如下

<ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" runat="server" 
                 TargetControlID="TextBox1" PopupControlID="Calendar1" Position="right">
</ajaxToolkit:PopupControlExtender>

5 在Calendar控件的SelectionChanged事件中添加代码,让选择日期后能将选择的日期显示在文本框中,如下

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
    this.TextBox1.Text = this.Calendar1.SelectedDate.ToShortDateString();
}
6 保存设计,运行程序,当鼠标单击文本框时就会在文本框的右边显示日历控件,选择一个日期,该日期就会显示在文本框中
posted @ 2007-09-19 13:34 oec2003 阅读(2334) 评论(7) 编辑 收藏

 回复 引用 查看   
#1楼 2007-09-19 17:52 吴祝明      
很方便!应如何解决页面刷新的问题?
 回复 引用 查看   
#2楼[楼主] 2007-09-20 13:50 oec2003      
将文本框控件和日历控件放到updatepanel里就可以了
 回复 引用 查看   
#3楼 2007-09-20 18:52 PointNet      
为什么不用jquery啊
 回复 引用   
#4楼 2007-09-28 15:27 看雪飘过[未注册用户]
我在FORMVIEW里使用PopupControlExtender控件,在选择TESTBOX的popupcontrolID的时候为什么找不到PANEL呢???
 回复 引用   
#5楼 2007-10-17 14:24 lsh2005[未注册用户]
当文本框 失去 焦点时,怎么让 日历 控件不显示?

 回复 引用   
#6楼 2007-12-17 22:58 vs2008[未注册用户]
用onblur事件
 回复 引用   
#7楼 2008-12-24 21:45 赖柱洲[未注册用户]
能不能在客户端实现选择?
总觉得这句
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
this.TextBox1.Text = this.Calendar1.SelectedDate.ToShortDateString();
}
像绕了个圈。