Как быть в следующей ситуации:
Есть класс (точнее 2)
public class Class1
{
public Class1(string af,int aid)
{
f = new Info(af);
id =aid.ToString();
}
string id;
public string Id
{
get { return id; }
set { id = value; }
}
Info f;
public Info F
{
get { return f; }
set { f = value; }
}
}
public class Info
{
public Info(string aName)
{
Name = aName;
}
public string Name;
}
Надо связать GridView со списком обьектов этого класса:
protected void Page_Load(object sender, EventArgs e)
{
Class1 c1 = new Class1("Info1",0);
Class1 c2 = new Class1("Info2",1);
ArrayList l = new ArrayList();
l.Add(c1);
l.Add(c2);
BoundField field = new BoundField();
field.DataField = "Id";
GridView1.Columns.Add(field);
field = new BoundField();
field.DataField = "F"; // <--- Вот здесь что то другое
GridView1.Columns.Add(field);
GridView1.DataSource = l;
GridView1.DataBind();
}
Если так сделать то во втором столбце будеет все значения = "Info",
так как ToString() применяется не к самому значению а к обьекту Info.
В самом классе ничего изменять нельзя, также в любом случае получаем список такого вида. Как то можно связать таблицу с этим полем чтобы всё правильно выводилось.
Сделал через создание DataTable и ручным его заполнением. В этом случае не особо понимаю как будет работать Paging (постраничное листание), или надо связывать как то через ObjectDataSource?
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|