Ciao e grazie mille della tua risposta.
beh magari fossero 5 secondi
.. la pagina ci mette quasi un minuto per caricarsi, ed visto che i repeater sono nella masterpage capisci che tutto il sito risulta molto lento, superando il minuto quando vi sono lettura di altr query..
Ti scrivo la parte di codice per la lettura dei dati:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
cod.Category cat = new DinECommerce.cod.Category();
repeatGroup.DataSource = cat.categorieLivello("2", null);
repeatGroup.DataBind();
}
}
protected void figli_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
HyperLink padre = e.Item.FindControl("padreHyperLink") as HyperLink;
if (padre != null)
{
string codCat = padre.ToolTip;
cod.Category cat = new DinECommerce.cod.Category(codCat);
padre.ToolTip = "";
string descrizione = padre.Text;
padre.NavigateUrl = "~/categoria/" + cat.DescrizionePerUrl + "_" + codCat + ".aspx";
Repeater figli = e.Item.FindControl("repeatCategory") as Repeater;
DataView vista = cat.categorieLivello(figli.DataMember, codCat);
if (vista.Count > 0)
{
figli.DataSource = vista;
figli.DataBind();
}
else
{
figli.Visible = false;
}
}
}
CLASSI per la CATEGORIA
public Category()
{
}
public Category(string codCat)
{
cod.DinECommerceDataSet.din_CategorieDataTable tableCat = LeggiCategorie();
DataView categoriaDV = new DataView(tableCat, "CodCat = " + codCat, "CodCat", DataViewRowState.CurrentRows);
DataRowView categRow = categoriaDV[0];
descrizione = categRow["Descrizione"].ToString();
if (codCat.Length > 2)
{
DescrizioneCompleta = percorsoCategoria(codCat) + " > " + descrizione;
}
else
{
DescrizioneCompleta = descrizione;
}
DescrizionePerUrl = cod.Util.MakeValidPathDescrition(descrizione);
}
public DataView categorieLivello(string lungArt, string codCat_padre)
{
cod.DinECommerceDataSet.din_CategorieDataTable tableCat = LeggiCategorie();
DataView livello;
if (codCat_padre == null)
{
livello = new DataView(tableCat, "LEN(CodCat) = 2", "Descrizione", DataViewRowState.CurrentRows);
}
else
{
livello = new DataView(tableCat, "LEN(CodCat) =" + lungArt + "AND CodCat LIKE '" + codCat_padre + "%'", "Descrizione", DataViewRowState.CurrentRows);
}
return livello;
}
private static cod.DinECommerceDataSet.din_CategorieDataTable LeggiCategorie()
{
cod.DinECommerceDataSet.din_CategorieDataTable tableCat = (cod.DinECommerceDataSet.din_CategorieDataTable)HttpContext.Current.Cache.Get("CategorieDataTable");
if (tableCat == null)
{
cod.DinECommerceDataSetTableAdapters.din_CategorieTableAdapter ta = new DinECommerce.cod.DinECommerceDataSetTableAdapters.din_CategorieTableAdapter();
tableCat = ta.GetData();
HttpContext.Current.Cache.Insert("CategorieDataTable", tableCat);
ta.Dispose();
}
return tableCat;
}