В этой части мы покажем как использовать серверные контролы. Для этого мы
продемонстрируем код формы, представляющей собой форму для передачи элементов
из одного списка в другой и обратно. Визуально это выглядит так:
Приложение создавалось в Visual Studio .NET, так что код не очень качественный,
но тем не менее мы его вам представим. Default.aspx:
<%@ Page language="c#" Codebehind="Default.aspx.cs" AutoEventWireup="false" Inherits="ru.spb.dotSITE.Portal.Tutorials.ASP.NET.Web_Forms.Using_Server_Controls.Sample_Application._Default" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Default</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Default" method="post" runat="server">
<asp:ListBox id="lstLeft" style="Z-INDEX: 101; LEFT: 9px; POSITION: absolute; TOP: 19px" runat="server" Width="167px" Height="217px"></asp:ListBox>
<asp:TextBox id="txtNewItem" style="Z-INDEX: 105; LEFT: 10px; POSITION: absolute; TOP: 250px" runat="server" Width="222px"></asp:TextBox>
<asp:ListBox id="lstRight" style="Z-INDEX: 102; LEFT: 327px; POSITION: absolute; TOP: 20px" runat="server" Width="168px" Height="215px"></asp:ListBox>
<asp:Button id="btnRightToLeft" style="Z-INDEX: 103; LEFT: 196px; POSITION: absolute; TOP: 141px" runat="server" Text="<-" Width="112px"></asp:Button>
<asp:Button id="btnLeftToRight" style="Z-INDEX: 104; LEFT: 197px; POSITION: absolute; TOP: 94px" runat="server" Text="->" Width="110px"></asp:Button>
<asp:Button id="btnAdd" style="Z-INDEX: 106; LEFT: 250px; POSITION: absolute; TOP: 249px" runat="server" Text="Add"></asp:Button>
<asp:Button id="btnRemove" style="Z-INDEX: 107; LEFT: 198px; POSITION: absolute; TOP: 23px" runat="server" Text="Remove" Width="103px"></asp:Button>
</form>
</body>
</HTML>
|
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace ru.spb.dotSITE.Portal.Tutorials.ASP.NET.Web_Forms.Using_Server_Controls.Sample_Application
{
///
/// Summary description for _Default.
///
public class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.ListBox lstLeft;
protected System.Web.UI.WebControls.ListBox lstRight;
protected System.Web.UI.WebControls.Button btnRightToLeft;
protected System.Web.UI.WebControls.Button btnLeftToRight;
protected System.Web.UI.WebControls.TextBox txtNewItem;
protected System.Web.UI.WebControls.Button btnAdd;
protected System.Web.UI.WebControls.Button btnRemove;
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.btnRightToLeft.Click += new System.EventHandler(this.btnRightToLeft_Click);
this.btnLeftToRight.Click += new System.EventHandler(this.btnLeftToRight_Click);
this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
// Обрабатывается нажатие кнопки "Add"
private void btnAdd_Click(object sender, System.EventArgs e)
{
// Добавляем новый элемент в список
lstLeft.Items.Add(txtNewItem.Text);
// И очищаем поле ввода
txtNewItem.Text = "";
}
// Это вызывается при нажатии кнопки "Remove"
private void btnRemove_Click(object sender, System.EventArgs e)
{
// Если есть выбранный элеиент, удаляем его
if (lstLeft.SelectedItem != null)
lstLeft.Items.Remove(lstLeft.SelectedItem);
}
// Перемещение элемента из левого списка в правый
private void btnLeftToRight_Click(object sender, System.EventArgs e)
{
// Если выбран какой-то элемент в левом списке
if (lstLeft.SelectedItem != null)
{
// Копируем его в правый
lstRight.Items.Add(lstLeft.SelectedItem.Text);
// И удаляем в левом
lstLeft.Items.Remove(lstLeft.SelectedItem);
}
}
// Аналогично предыдущему методу
private void btnRightToLeft_Click(object sender, System.EventArgs e)
{
if (lstRight.SelectedItem != null)
{
lstLeft.Items.Add(lstRight.SelectedItem.Text);
lstRight.Items.Remove(lstRight.SelectedItem);
}
}
}
}
|
В принципе, из комментариев все понятно. Разбор этого приложения предоставим
читателю в качестве упражнения.