>>>想知道如何从数据库中读出菜单项内容,然后在程序中生成ASPMENU所需格式的XML文件just build the menu in the memory, it is more efficient than creating an xml file and generating menus indirectlyhttp://www.aspnetmenu.com/tutorial_serverSide.aspx

解决方案 »

  1.   

    参考:直接写XML文件 XmlTextWriter textWriter = new XmlTextWriter( m_XmlFile, null );
    textWriter.WriteStartDocument();  
    textWriter.WriteStartElement("chartdatalist");
    textWriter.WriteStartElement("chartdataisland"); XmlTextWriter textWriter_Dundas = new XmlTextWriter( m_XmlFile_Dundas, null );
    textWriter_Dundas.WriteStartDocument();  
    textWriter_Dundas.WriteStartElement("NewDataSet"); for ( int i = 0; i < RowNum; i++ )
    {
    for ( int j = 0; j < CellNum; j++ )
    {
    textWriter.WriteStartElement("chartdata", ""); textWriter_Dundas.WriteStartElement("Customers"); textWriter.WriteStartElement( "x" ); textWriter_Dundas.WriteStartElement("xx"); if ( strSync == "1" )
    {
    textWriter.WriteAttributeString("legend", arrCountXValueList[i].Trim() + "-" + arrCountYValueList[j].Trim());
    }
    else
    {
    textWriter.WriteAttributeString("legend", arrCountXValueList[i].Trim() );
    }
    textWriter.WriteString( i.ToString() );
    textWriter.WriteEndElement(); textWriter_Dundas.WriteString( i.ToString() );
    textWriter_Dundas.WriteEndElement(); //
    textWriter.WriteStartElement( "y" ); textWriter_Dundas.WriteStartElement("yy"); if ( strSync == "1" )
    {
    StrSql = "SELECT COUNT( "+ CountY +" ) AS RowNum FROM "+ TableName +" WHERE "+ CountX +" = '" + arrCountXValueList[i].Trim() + "' AND "+ CountY +" = '" + arrCountYValueList[j].Trim() + "' AND " + CountXCondition + " AND " + CountYCondition + MoreCondition;
    }
    else
    {
    StrSql = "SELECT COUNT( "+ CountY +" ) AS RowNum FROM "+ TableName +" WHERE "+ CountX +" = '" + arrCountXValueList[i].Trim() + "' AND " + CountXCondition + " AND " + CountYCondition + MoreCondition;
    }
    myReader = conn.getDataReader( StrSql );
    int _RowNum = 0;
    if ( myReader.Read() )
    {
    _RowNum = int.Parse( myReader["RowNum"].ToString() );
    }
    //_RowNum = _RowNum * 10;
    MaxValue = ( MaxValue < _RowNum ) ? _RowNum : MaxValue;
    if ( strSync == "1" )
    {
    textWriter.WriteAttributeString("legend", arrCountYValueList[j].Trim() );
    }
    textWriter.WriteString( _RowNum.ToString() );
    textWriter.WriteEndElement(); textWriter_Dundas.WriteString( _RowNum.ToString() );
    textWriter_Dundas.WriteEndElement(); //
    textWriter.WriteStartElement( "color" );
    textWriter.WriteString( arrColor[i] );
    textWriter.WriteEndElement(); textWriter.WriteEndElement(); textWriter_Dundas.WriteEndElement();
    }
    }
    textWriter.WriteEndElement();
    textWriter.WriteEndElement();
    textWriter.WriteEndDocument(); textWriter_Dundas.WriteEndElement();
    textWriter_Dundas.WriteEndDocument(); textWriter.Close(); textWriter_Dundas.Close();
      

  2.   

    aspnetmenu会过期吗?过期后对组件的使用有何影响?