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 usar controles Repeater aninhados para exibir dados hierárquicos. Você pode aplicar esse conceito para outros controles ligados a lista.
No menu arquivo , aponte para novo e, em seguida, clique em Project .
Clique em projetos do Visual translation from VPE for Csharp em Tipos de projeto e, em seguida, clique em ASP.NET Web Application em modelos .
Na caixa local , exclua o WebApplication # e digite NestedRepeater . Se você usar o servidor local, deixe o nome do servidor como http://localhost . O caminho a seguir aparece na caixa local :
http://localhost/ NestedRepeater
Clique em OK .
No Solution Explorer , clique com o botão direito no nó de nome de projeto NestedRepeater , aponte para Add e, em seguida, clique em Add Web Form .
Para nomear o formulário da Web, digite NestedRepeater e clique em Abrir .
O novo formulário da Web é criado. Ele abre no modo Design no ambiente de desenvolvimento integrado (IDE) do Microsoft Visual Studio. NET. Na caixa de ferramentas, selecione o controle Repeater e arraste-o para a página Web Form.
Altere a propriedade ID do controle Repeater para parentRepeater .
Alterne para o modo de exibição HTML desse formulário da Web. Para fazer isso, clique na guia HTML no canto inferior esquerdo do Designer. O controle Repeater gera o seguinte código HTML:
No Solution Explorer, clique com o botão direito do mouse NestedRepeater.aspx e, em seguida, clique em View Code para alternar para o arquivo de code-behind NestedRepeater.aspx.cs.
Adicione a declaração de namespace a seguir na parte superior do arquivo:
using System.Data;
using System.Data.SqlClient;
Adicione o seguinte código ao evento Page_Load para criar uma conexão ao banco de dados pubs e vincular a tabela autores ao controle Repeater :
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();
}
Observação : talvez seja necessário modificar a string de conexão de banco de dados conforme apropriado para seu ambiente.
Salve todos os arquivos.
No Solution Explorer , clique o NestedRepeater.aspx com o botão direito do mouse e clique em Set As Start Page .
No menu Build , clique em Build Solution para compilar o projeto.
Exibir a página .aspx no navegador e, em seguida, verifique se a página funciona até o momento.
depois de definir a propriedade DataSource para o filho controle Repeater , o código HTML para os dois controles Repeater (pai e filho) aparece da seguinte maneira:
Adicione a seguinte diretiva de página na parte superior da página:
<%@ Import Namespace="System.Data" %>
Na página code-behind, 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.
Salve e compilar o aplicativo.
Visualize a página no navegador e, em seguida, verifique se a página funciona até o momento. A saída deve aparecer da seguinte maneira:
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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.