public partial class _Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
int[] var1 = new int[] { 1, 2, 3 };
int[] var2 = new int[] { 10, 20, 30 };
int[] var3 = new int[] { 100, 200, 300 };
GridView1.DataSource = Tuple.MergeArrays(var1, var2, var3);
GridView1.DataBind();
}
public struct Tuple {
private int _var1;
public int Var1 {
get {
return _var1;
}
set {
_var1 = value;
}
}
private int _var2;
public int Var2 {
get {
return _var2;
}
set {
_var2 = value;
}
}
private int _var3;
public int Var3 {
get {
return _var3;
}
set {
_var3 = value;
}
}
public static Tuple[] MergeArrays(int[] var1, int[] var2, int[] var3) {
if (var1.Length != var2.Length || var2.Length != var3.Length)
throw new ArgumentException("Размеры массивов отличаются.");
int length = var1.Length;
Tuple[] result = new Tuple[length];
for (int i = 0; i < length; ++i) {
result.Var1 = var1;
result.Var2 = var2;
result.Var3 = var3;
}
return result;
}
}
}
Вывод данных на GridView
И так у меня есть 3 массива типа int
1. var1 //тип int
2. var2. //тип int
3. var3 //тип int
Все эти 3 массива надо объеденить в одну кучу (например в какой нибудь List или что то еще) и передать GridView'у. Чтобы GridView отображал их как одну кучу. То есть получиться GridView с тремя полями.
Количество элементов массивов всегда равны. (Если в var1 5 элементов значить в остальных тоже по 5)
:o
Цитата: swordholder
Помогите пожалуйста как можно выводить данные с переменных массивов на GridView
И так у меня есть 3 массива типа int
1. var1 //тип int
2. var2. //тип int
3. var3 //тип int
И так у меня есть 3 массива типа int
1. var1 //тип int
2. var2. //тип int
3. var3 //тип int
Код:
я решил проблему более проще
Пользовался DataTable, DataRow, DataColumn
Что то вроде этого.
DataTable dTable = new DataTable("Dynamically_Generated");
DataColumn auto = new DataColumn("AutoID", typeof(System.Int32));
dTable.Columns.Add(auto);
DataColumn name = new DataColumn("Name", typeof(string));
dTable.Columns.Add(name);
DataColumn address = new DataColumn("Address", typeof(string));
dTable.Columns.Add(address);
DataRow row = null;
for (int i = 0; i < 5; i++)
{
row = dTable.NewRow();
row["AutoID"] = i + 1;
row["Name"] = i + " - Ram";
row["Address"] = "Ram Nagar, India - " + i;
dTable.Rows.Add(row);
}
GridView.DataSource=Dtable;
GridView.DataBind();
Цитата: swordholder
Спасибо большое Hardcase
я решил проблему более проще
я решил проблему более проще
Смотря что считать "проще". Для вас, похоже, объявление типа - сложно.
Использование DataTable и DataRow зачастую приводит к потере строгой типизации, что влечет за собой появление нового пространства для багов, а также провалам в производительности при построении "таблицы".
Сравните, сколько объектов создается в моем примере, и сколько в вашем для выполнения такой простой операции (у меня - один, результирующий массив).
Ну и наконец, поддержка кода, формирующего такие "таблицы" тоже не сахар, скажу я вам.
Согласен
А если массив один, но двумерный? Помогите пожалуйста, а то какая то белиберда выходит...
Цитата: Floyd@
А если массив один, но двумерный? Помогите пожалуйста, а то какая то белиберда выходит...
А вот двумерный массив проще будет перегнать в дататэйбл.
А еще лучше - писать собственный код отображения на странице, т.е. рендерить <table>.
Спасибо!