Utilice controles de repetidor anidados para mostrar datos jerárquicos
Una introducción
Este artículo describe cómo utilizar controles de Repetidor anidados para mostrar datos jerárquicos. Por supuesto, también puede aplicar esta tecnología a otros controles vinculados a listas, como DataGrid. que contiene DataGrid DataList contiene una combinación de DataList, etc.
Segundo enlace a la tabla principal
Agregue un nuevo formulario web al proyecto de aplicación llamado Nestedrepeater aspx Arrastre un repetidor desde la caja de herramientas Conjunto el atributo ID del control como padre en esta página. Cambie a la vista HTML y seleccione la siguiente <itemtemplate><b><%# DataBinder Eval(Container DataItem au_id ) %></b><br></itemtemplate> Abra Nestedrepeater Aspx cs. Este archivo de separación de código elimina el siguiente código y lo agrega al evento Page_Load. Su función es establecer una conexión y vincularse a Pubs (esta base de datos es la base de datos de demostración de SQL). server Esta base de datos también se instalará al instalar la tabla de autores de net framework en el control del repetidor public void Page_Load(){ SqlConnection cnn = new SqlConnection( server=(local);database=pubs;uid. =sa;pwd=; ); SqlDataAdapter cmd = new SqlDataAdapter( select * de los autores cnn); DataSet ds = new DataSet(); la tabla secundaria se insertará aquí parent DataSource = ds Tables[authors]; Page DataBind(); cnn Close();} Agregue el siguiente espacio de nombres usando System Data SqlClient en el encabezado del archivo; modifique la cadena de conexión según su propia situación y guárdela. Compile la aplicación y abra esta página en el navegador. El resultado de salida es similar al siguiente formato Tres enlaces a la subtabla En el HTML de la página El propósito de agregar el siguiente código a la vista es agregar el control Repetidor secundario a la plantilla de proyecto del Repetidor principal para formar un nido. Establezca la propiedad DataSource del control repetidor secundario: ) %> > Agregue las siguientes instrucciones en la parte superior de la página (tenga en cuenta que está en el archivo aspx): <%@ Importar espacio de nombres= Datos del sistema %> En el archivo cs, reemplace la parte del comentario en Page_Load (//El enlace de datos de la subtabla se insertará aquí) con el siguiente código: SqlDataAdapter cmd = new SqlDataAdapter( seleccione * de titleauthor cnn);cmd Fill(ds titles);ds Relations Add( myrelation ds Tables[ autores ] Columnas[ au_id ] ds Tables[ titles ] Columnas[ au_id ]); aplicación para ver las modificaciones en el navegador El formato de visualización de la página es similar al siguiente formato: PS BU BU PC BU TC Cuatro códigos completos Nestedrepeater aspx <%@ Idioma de página= C# Hereda= nombre de tu proyecto nestedrepeater %><%@ Importar espacio de nombres= Datos del sistema %> <><body><form runat=server> <! iniciar repetidor principal ><asp :repeater id= padre runat= servidor ><itemtemplate> < ! iniciar repetidor secundario > <asp: id de repetidor= origen de datos secundario= <%# ((DataRowView)Container DataItem) Row GetChildRows( myrelation ) %> runat= servidor > </itemtemplate></asp:repeater><! </form>< /body></>Nestedrepeater aspx cs usando el sistema;usando los datos del sistema;usando los datos del sistema SqlClient;usando el sistema Web;usando el sistema Web SessionState;usando la interfaz de usuario web del sistema;usando los controles web de la interfaz de usuario web del sistema <; /p> espacio de nombres nombre de su proyecto {clase pública nestedrepeater: página de interfaz de usuario web del sistema {protegida interfaz de usuario web del sistema WebControls repetidor pub; lic nestedrepeater() { Page Init += new System EventHandler(Page_Init); } public void Page_Load(object sender EventArgs e) { //Crea la conexión y el DataAdapter para la tabla Authors SqlConnection cnn = new SqlConnection( server=(local); base de datos=pubs;uid=sa;pwd= ); SqlDataAdapter cmd = new SqlDataAdapter( seleccione * de los autores cnn); //Crear y completar el DataSet DataSet ds = new DataSet(); (ds Authors); //Crea un segundo DataAdapter para la tabla de títulos SqlDataAdapter cmd = new SqlDataAdapter( select * from titleauthor cmd Fill(ds titles /); /Crear la relación antes de las tablas Autores y Títulos ds Relations Add( myrelation ds Tables[ Authors ] Columns[ au_id ] ds Tables[ titles ] Columns[ au_id ]); control del repetidor principal y llamada DataBind padre DataSource = ds Tables[autores]; Página lishixinzhi/Article/program/net/201311/15734