PDA

View Full Version : سوال: درخواست راهنمایی برای گرید ویویی که به دیتا بیس وصل نیست؟



hamide_kh
سه شنبه 25 اسفند 1388, 23:45 عصر
سلام
دوستان بنده می خوام از Grid view در برنامه ام استفاده کنم اما اونا به دیتابیس وصل نمی کنم و Data Source اون را به یک ArrayList وصل میکنم اما حالا مشکلی که دارم نمیدونم چطور به Header
Array List دسترسی داشته باشم،یعنی بعد از Bind کردن گرید ویو در Header کلمه item چاپ میشه من میخوام به جای کلمه Item کلمه ای که من می خوام چاپ بشه

یک سوال خارج از بحث:ایا کنترلی را سراغ دارید که بشه ظاهر اون را مثل گرید ویو قشنگ کرد(مثل AlterNatingRowStyle) که من از گرید ویو استفاده نکنم

Mostafa_Dindar
چهارشنبه 26 اسفند 1388, 00:30 صبح
به تعداد فيلدهاي ArrayList تتان ، BoundField در گريد ويو ايجاد كنيد . ضمن اينكه DataField رو به فيلدهاي ArrayList انتصاب ميدهيد ، HeaderText رو هم هرچه دلتان خواست بزاريد .


تمام كنترلهاي داده AlternatingRowStyle دارند ( GridView , FormView , ListView , DetailView , Repeater ,DataList)

موفق باشيد

mehdi.mousavi
چهارشنبه 26 اسفند 1388, 01:02 صبح
سلام.
به فرمایشات LastPhoenix این مطلب رو هم اضافه کنم که جای ArrayList بهتره از List<T> Generic Class استفاده کنید. توی ArrayList دسترسی به هر عنصر باعث عمل Boxing/Unboxing میشه ولی توی List چون تایپ عناصر رو خودتون تعیین می کنید، دیگه این اتفاق نمی افته و از نظر Performance خیلی بهتر عمل میکنه.

موفق باشید.

hamide_kh
پنج شنبه 27 اسفند 1388, 17:55 عصر
تعداد فيلدهاي ArrayList تتان ، BoundField در گريد ويو ايجاد كنيد . ضمن اينكه DataField رو به فيلدهاي ArrayList انتصاب ميدهيد ، HeaderText رو هم هرچه دلتان خواست بزاريد
سلام

ممنون از پاسختون
من برای بایند کردن ArrayList به گریدویو در زمان طراحی این کار را انجام میدم و نمیدنم این کاری که شما فرمودید را چطور در زمان اجرا انجام بدم

من کاری را که می خوام انجام بدم را براتون توضیح میدم شاید شما راهی دیگه پیش رویم قرار دادید

ببینید من در صفحه دو تا gridview دارم که لیست محصولاتم توی آنها نشون داده میشه و این دوتا گرید ویو در کناره های صفحه من قرار داره حال من می خوام هر زمان کاربرروی این گرید ویوها 2 بار کلیک کرد key این گرید ویو ها (که کد محصولات هست)در یک گرید ویوی دیگه که در وسط صفحه قرار داده بشینه .مشکل دوبار کلیک را با کمک دوستان در همین سایت حل کردم اما نمیدونم چطور عناصر را به گرید ویوی وسط صفحه اضافه کنم که خودم فکر کردم با Arraylist میشه حل کرد،آیا شما راه حله دیگه ای دارید.
آیا اصلا راهی نیست که بشه سطری را مستقیم به گرید ویو اضافه کرد
و یا اصلا از کنترلی به غیر از گرید ویو استفاده کرد(فقط می خوام بشه یکم به اون شکل و شمایل داد) و اگه ممکنه راهنماییم کنید که برای این کار چه روشی را برم بهتره؟

در ضمن برای اضافه کردن سطر به گرید ویویی که به دیتابیس وضل نیست می خواستم از کدییر که در سایت بود استفاده می کنم که نشد
این هم از کد
DataGridView.Rows.Add(new object[] { 1 , "first row"});
وقتی Gridvew.rows را میزنم اصلا متد add نیست

hamide_kh
سه شنبه 17 فروردین 1389, 23:02 عصر
سلام خدمت دوستان
یک نمونه کد هست که فقط در یک قسمت از اون مشکل دارم.
یک کلاس بصورت زیر است:



public class Employee
{
private string enm;
private int ageofemp;
private string department;
public string EName
{
get
{
return enm;
}
set
{
enm = value;
}
}
public int Age
{
get
{
return ageofemp;
}
set
{
ageofemp = value;
}
}
public string Dept
{
get
{
return department;
}
set
{
department = value;
}
}
public Employee(string ename, int age, string dept)
{
this.enm = ename;
this.ageofemp = age;
this.department = dept;
}

}

و در برنامه هم کد زیر را برای اضافه کردن سطور به لیست را در رویداد کلیک دکمه نوشتم


System.Collections.Generic.List<Employee> emp = new System.Collections.Generic.List<Employee>();
emp.Add(new Employee("Ali",50,"Copmuter"));

GridView1.DataSource = emp;
GridView1.DataBind();

البته متغیر emp را بصورت سراسری تعریف کردم
فقط یک مشکل هست که اگر 10 بار هم روی دکمه کلیک شود فقط یکبار رکورد را اضافه می کند،من می خوام اگر کاربر 10 بار کلیک کرد 10 تا رکورد جدید به لیست اضافه شوند

Vahid_moghaddam
چهارشنبه 18 فروردین 1389, 09:41 صبح
مشکل در تعریف emp هست. هر بار که کلیک می کنید، یه نمونه جدید از emp ساخته می شه

Vahid_moghaddam
چهارشنبه 18 فروردین 1389, 09:47 صبح
به عنوان یه پیشنهاد می تونید emp رو در session قرار بدید.

hamide_kh
چهارشنبه 18 فروردین 1389, 13:57 عصر
به عنوان یه پیشنهاد می تونید emp رو در session قرار بدید
سلام
گفتم كه اون را به صورت سراسري تعريف كردم،به نظر من مشكل از چيز ديگه هاي هست

Vahid_moghaddam
چهارشنبه 18 فروردین 1389, 19:49 عصر
سلام
گفتم كه اون را به صورت سراسري تعريف كردم،به نظر من مشكل از چيز ديگه هاي هست

هر بار که صفحه load بشه، emp دوباره new می شه. برای اطمینان چک کنید ببینید در postback آیا emp خالی هست یا نه.

hamide_kh
چهارشنبه 18 فروردین 1389, 23:03 عصر
سلام ممنون از توجهتون

هر بار که صفحه load بشه، emp دوباره new می شه. برای اطمینان چک کنید ببینید در postback آیا emp خالی هست یا نه.

میشه یکم بیشتر توضیح بدید.