Ho una dll. ti questo tipo:
md bin
csc /t:library /r:system.dll,system.web.dll /out:bin/MathColumn.dll MathColumn.cs
pause
using System;
using System.Collections;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Data;
using System.Diagnostics;
namespace ASPItalia.com
{
public class MathColumn:System.Web.UI.WebControls.DataGridColumn
{
public MathColumn():base()
{
}
private int columnIndex=0;
private MathOperation operation=MathOperation.Sum;
private string dataFields="";
private string dataFormatString="{0}";
private string[] fields=new string[0];
public override void InitializeCell(TableCell cell,int columnIndex,ListItemType itemType)
{
//chiama il metodo base
base.InitializeCell(cell,columnIndex,itemType);
this.columnIndex=columnIndex;
}
private void onDataBound(object s, DataGridItemEventArgs e)
{
if (e.Item.DataItem!=null)
{
//riferimento al valore
DataRowView r=e.Item.DataItem as DataRowView;
if (r==null) return;
//risultato
float math=(operation==MathOperation.Min)?float.MaxValue:0f;
foreach (string field in fields)
{
float v=Convert.ToSingle(r[field]);
if ((operation==MathOperation.Min && v<math) ||
(operation==MathOperation.Max && v>math))
math=v;
else if (operation==MathOperation.Sum || operation==MathOperation.Avg)
math+=v;
}
if (operation==MathOperation.Avg)
math/=fields.Length;
e.Item.Cells[columnIndex].Text=string.Format(DataFormatString,math);
}
}
public override void Initialize()
{
base.Initialize();
Owner.ItemDataBound+=new DataGridItemEventHandler(onDataBound);
}
public MathOperation Operation
{
get
{
return operation;
}
set
{
operation=value;
}
}
public string DataFormatString
{
get
{
return dataFormatString;
}
set
{
dataFormatString=value;
}
}
public string DataFields
{
get
{
return dataFields;
}
set
{
dataFields=value;
//preleva la lista dei campi
fields=dataFields.Split(new Char[]{Convert.ToChar(",")});
}
}
}
public enum MathOperation
{
Sum,
Avg,
Min,
Max
}
}
e questo il file test.aspx.
questa dll funziona sia sui noti hosting italiani senza fare i nomi
Quindi perchè mi dicono che le dll nello spazio web non si possono mettere?.
Non è che si confondono con le dll del sistema operativo invece delle dll net?.
grazie.