protected void rptMenuLvl1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if ((e.Item.ItemType == ListItemType.Item ? true : e.Item.ItemType == ListItemType.AlternatingItem)) { BAVMenuOpcion dataItem = e.Item.DataItem as BAVMenuOpcion; object obj = e.Item.DataItem; if (dataItem.Opciones.Count <= 0) { string str = "?"; if (dataItem.Pagina.Contains("?")) { str = "&"; } Literal literal = e.Item.FindControl("liItem") as Literal; if (string.IsNullOrEmpty(dataItem.Pagina)) { literal.Text = string.Concat("<li><a href='javascript:void(0);'>", dataItem.Nombre, "</a></li>"); } else { literal.Text = string.Concat(new object[] { "<li><a href='", dataItem.Pagina, str, "sCod=", dataItem.Codigo, "' onclick='goPage(this, event);'>", dataItem.Nombre, "</a></li>" }); } } else { Control control = e.Item.FindControl("liChilds"); Repeater opciones = e.Item.FindControl("rptMenuLvl2") as Repeater; opciones.DataSource = dataItem.Opciones; opciones.DataBind(); control.Visible = true; } } }
private static List <BAVMenuOpcion> recursivo(DataTable dt, string codigo) { List <BAVMenuOpcion> bAVMenuOpcions = new List <BAVMenuOpcion>(); DataRow[] dataRowArray = dt.Select(string.Concat("MD_Cod_Padre=", codigo), "MD_Pos_Mostrar"); for (int i = 0; i < (int)dataRowArray.Length; i++) { BAVMenuOpcion newOpcion = BAVMenuOpcion.getNewOpcion(dataRowArray[i]); List <BAVMenuOpcion> opciones = newOpcion.Opciones; int num = newOpcion.Codigo; opciones.AddRange(HelperMenu.recursivo(dt, num.ToString())); bAVMenuOpcions.Add(newOpcion); } return(bAVMenuOpcions); }
public static List <BAVMenuOpcion> getMenuTest() { List <BAVMenuOpcion> bAVMenuOpcions = new List <BAVMenuOpcion>(); DataSet dataSet = new DataSet(); try { dataSet = HelperMenu.ws.MenuDinamicoNatural(); if (dataSet.Tables.Count != 0) { DataTable item = dataSet.Tables[0]; if (item.Rows.Count != 0) { if ((item.TableName == "SqlException" ? true : item.TableName == "Exception")) { throw new IBException(item.Rows[0]["NumeroError"].ToString().Trim(), "SQLIB"); } DataRow[] dataRowArray = dataSet.Tables[0].Select("MD_Cod_Padre = 0", "MD_Pos_Mostrar"); DataRow[] dataRowArray1 = dataRowArray; for (int i = 0; i < (int)dataRowArray1.Length; i++) { BAVMenuOpcion newOpcion = BAVMenuOpcion.getNewOpcion(dataRowArray1[i]); List <BAVMenuOpcion> opciones = newOpcion.Opciones; DataTable dataTable = dataSet.Tables[0]; int codigo = newOpcion.Codigo; opciones.AddRange(HelperMenu.recursivo(dataTable, codigo.ToString())); bAVMenuOpcions.Add(newOpcion); } dataSet = null; } } } catch (WebException webException) { throw new IBException(webException.Message, "SQLIB"); } return(bAVMenuOpcions); }