有朋友问起我Panel控件有什么用,认为Panel控件只不过是控制一些控件的整体输入输出,没有什么大的用途,呵呵,确实这样,Panel控件的功能只能是这么点点,但是它一旦和其它的Web控件结合起来使用,它的优点就显现出来了。
我们下面来模拟一个用户申请的页面。申请分为四步,第一步输入用户名,第二步输入用户信息,第三步显示确定信息,第四步确认。如图1至图4
|
图1 |
|
图2 |
|
图3 |
|
图4 |
| <Script Language="C#" Runat="Server"> public void Page_Load(Object src,EventArgs e) { if(!Page.IsPostBack) { file://初始化Panel State["PanelSeed"] = 0; Panel0.Visible = true; Panel1.Visible = false; Panel2.Visible = false; Panel3.Visible = false; } } public void PrevStep(Object src,EventArgs e) { file://大家没有忘记State吧。 string CurrentPanel = "Panel"+State["PanelSeed"].ToString(); State["PanelSeed"] = (int)State["PanelSeed"]-1; string PrevPanel = "Panel"+State["PanelSeed"].ToString(); file://这里注意FindControl的用法 Panel p = (Panel)FindControl(CurrentPanel); p.Visible = false; p = (Panel)FindControl(PrevPanel); p.Visible = true; } public void NextStep(Object src,EventArgs e) { string CurrentPanel = "Panel"+State["PanelSeed"].ToString(); State["PanelSeed"] = (int)State["PanelSeed"]+1; string NextPanel = "Panel"+State["PanelSeed"].ToString(); Panel p = (Panel)FindControl(CurrentPanel); p.Visible = false; p = (Panel)FindControl(NextPanel); p.Visible = true; if((int)State["PanelSeed"]==2) { FUserName.Text = UserName.Text; FPasswd.Text = Passwd.Text; FAddress.Text = Address.Text; FZipCode.Text = ZipCode.Text; FComment.Text = Comment.Text; } } </script> <html> <head> <title></title> </head> <body> <form runat="server"> <asp:Panel >请您.......</td> </tr> </table> </asp:Panel> </form> </body> </html> |