Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод данных на GridView

2.0K
17 сентября 2008 года
swordholder
99 / / 17.10.2006
Помогите пожалуйста как можно выводить данные с переменных массивов на GridView

И так у меня есть 3 массива типа int

1. var1 //тип int
2. var2. //тип int
3. var3 //тип int

Все эти 3 массива надо объеденить в одну кучу (например в какой нибудь List или что то еще) и передать GridView'у. Чтобы GridView отображал их как одну кучу. То есть получиться GridView с тремя полями.

Количество элементов массивов всегда равны. (Если в var1 5 элементов значить в остальных тоже по 5)
:o
5
17 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: swordholder
Помогите пожалуйста как можно выводить данные с переменных массивов на GridView

И так у меня есть 3 массива типа int

1. var1 //тип int
2. var2. //тип int
3. var3 //тип int


Код:
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;
        }

    }
}
2.0K
17 сентября 2008 года
swordholder
99 / / 17.10.2006
Спасибо большое Hardcase

я решил проблему более проще
Пользовался 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();
5
17 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: swordholder
Спасибо большое Hardcase
я решил проблему более проще

Смотря что считать "проще". Для вас, похоже, объявление типа - сложно.
Использование DataTable и DataRow зачастую приводит к потере строгой типизации, что влечет за собой появление нового пространства для багов, а также провалам в производительности при построении "таблицы".
Сравните, сколько объектов создается в моем примере, и сколько в вашем для выполнения такой простой операции (у меня - один, результирующий массив).

Ну и наконец, поддержка кода, формирующего такие "таблицы" тоже не сахар, скажу я вам.

2.0K
17 сентября 2008 года
swordholder
99 / / 17.10.2006
Согласен
25K
06 октября 2008 года
Floyd@
20 / / 24.03.2008
А если массив один, но двумерный? Помогите пожалуйста, а то какая то белиберда выходит...
5
06 октября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Floyd@
А если массив один, но двумерный? Помогите пожалуйста, а то какая то белиберда выходит...

А вот двумерный массив проще будет перегнать в дататэйбл.
А еще лучше - писать собственный код отображения на странице, т.е. рендерить <table>.

25K
06 октября 2008 года
Floyd@
20 / / 24.03.2008
Спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог