Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo descreve como utilizar controlos de Repetidor aninhados para apresentar dados hierárquicos. Pode aplicar este conceito a outros controlos dependentes de lista.
No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
Clique em Visual C# Projects em Project Types e, em seguida, clique em ASP.NET Web Application em modelos .
Na caixa localização , elimine o WebApplication # e, em seguida, escreva NestedRepeater . Se utilizar o servidor local, deixe o nome do servidor como http://localhost . Aparece o seguinte caminho na caixa localização :
http://localhost/ NestedRepeater
Clique em OK .
No Solution Explorer , clique com o botão direito do rato no nó de nome de projecto NestedRepeater , aponte para Adicionar e, em seguida, clique em Adicionar formulário de Web .
Nome do formulário da Web, escreva NestedRepeater e clique em Abrir .
O novo formulário de Web é criado. É aberto na vista de estrutura no IDE (Integrated Development Environment) do Microsoft Visual Studio .NET. Da caixa de ferramentas, seleccione o controlo de Repetidor e, em seguida, arraste-o à página de formulário Web.
Altere a propriedade ID deste controlo Repetidor para parentRepeater .
Mude para a vista HTML para este formulário Web. Para o fazer, clique no separador HTML no canto inferior esquerdo do Designer. O controlo de Repetidor gera o seguinte código HTML:
No Solution Explorer, clique com o botão direito do rato NestedRepeater.aspx e, em seguida, clique em Ver código para mudar para o ficheiro de código NestedRepeater.aspx.cs.
Adicione a seguinte declaração de espaço de nomes na parte superior do ficheiro:
using System.Data;
using System.Data.SqlClient;
Adicione o seguinte código ao evento Page_Load para criar uma ligação à base de dados pubs e, em seguida, vincular à tabela autores ao controlo de Repetidor :
public void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the Authors table.
SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds,"authors");
//Insert code in step 4 of the next section here.
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
Nota : poderá ter de modificar a cadeia de ligação da base de dados conforme apropriado para o ambiente.
Guarde todos os ficheiros.
No Solution Explorer , clique com o botão direito do rato a NestedRepeater.aspx e, em seguida, clique em Definir como página inicial .
No menu criar , clique em Criar soluções para compilar o projecto.
Visualizar a página .aspx no browser e, em seguida, verifique se a página funciona até ao momento.
depois de definir a propriedade de origem de dados do subordinado Repetidor de controlo, o código HTML para os dois controlos de Repetidor (principal e subordinado) é apresentado da seguinte forma:
Adicione a seguinte directiva de página no início da página:
<%@ Import Namespace="System.Data" %>
Na página de código, substitua a seguinte linha no evento Page_Load
//Insert code in step 4 of the next section here.
com o seguinte código:
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
cmd2.Fill(ds,"titles");
//Create the relation between the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
This adds the Titles Table to the DataSet, and then adds the relationships between the Authors and Titles Tables.
Guarde e compilar a aplicação.
Visualizar a página no browser e verifique se a página funciona até ao momento. A saída deverá aparecer da seguinte forma:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace NestedRepeater
{
public class NestedRepeater : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Repeater parentRepeater;
public NestedRepeater()
{
Page.Init += new System.EventHandler(Page_Init);
}
public void Page_Load(object sender, EventArgs e)
{
//Create the connection and DataAdapter for the Authors table.
SqlConnection cnn = new SqlConnection("server=(local);database=pubs; Integrated Security=SSPI ;");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds,"authors");
//Create a second DataAdapter for the Titles table.
SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
cmd2.Fill(ds,"titles");
//Create the relation bewtween the Authors and Titles tables.
ds.Relations.Add("myrelation",
ds.Tables["authors"].Columns["au_id"],
ds.Tables["titles"].Columns["au_id"]);
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();
//Close the connection.
cnn.Close();
}
private void Page_Init(object sender, EventArgs e)
{
InitializeComponent();
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
}
}
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 306154
(http://support.microsoft.com/kb/306154/en-us/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.