PDA

View Full Version : مبتدی: ساخت کنترل GridView در حین اجرای برنامه



royal93
جمعه 14 شهریور 1393, 08:51 صبح
اساتید محترم ....
من در حال نوشتن یه پروژه مربوط به سیستم دانشگاهی هستم. اگه ممکنه به بنده کمک کنید مبتدی هستم :لبخند:

من با asp.net و #C کار میکنم . یه صفحه دارم به عنوان کارنامه کل که قراره اطلاعات مربوط به هر ترم دانشجو رو به صورت جداگونه توی یه گریدویو نمایش بده . حالا مشکل من اینه که نمیدونم چجوری به ازای هر ترم یه گریدویو نمایش داده بشه .

امیدوارم متوجه شده باشید چی میخام . بطور مثال اگه دانشجوی اول وارد سایت شد و ترم دو بود طبیعتا باید توی قسمت کارنامه کل دو تا گریدویو برای نمایش اطلاعات دو ترمش باشه و اگه دانشجوی بعدی وارد سایت شد و ترم 5 بود 5 تا گریدویو برای نمایش اطلاعات 5 ترمش نمایش داده بشه .

اما من که نمیدونم هر دانشجو چندتا ترم گذرونده . این مشکل منه که میخام بهم بگید چیکار کنم . میتونم تعداد ترم های تحصیلی هر دانشجو رو بیرون بکشم و داخل سشن بذارم ولی نمیدونم چجوری در حین اجرای برنامه به تعداد ترمهای تحصیلی هر دانشجو یه گریدویو بسازم

ممنون از همه اساتید

rambod17
جمعه 14 شهریور 1393, 12:32 عصر
این مرتبط با طراحی های قبلی شماست.الان تو سیستم دانشگاهی تعریف ترم دارن.خوب ذخیره میکنند که توی این ترم کدوم دانشجوها انتخاب واحد داشتن و یا اینکه اگر درسی توی یک ترم خواص برای دانشجو ثبت شده یعنی اینکه اون ترم دانشجو نمره هم داشته و انتخاب واحد کرده بعد بر اساس اون ترم های دانشجو رو تعیین میکنن و کارنامه تشکیل میدن
به عنوان مثال یک جدول با فیلد های سال و نیم سال و یک کلید خارجی که شماره دانشجوی هست
حالا هر شماره دانشجویی که موجود باشه یعنی اون دانشجو در اون ترم فعالیت داشته.
بعد تو قسمت در ها باز یک کلید خارجی هست که از جدول مربوط به ترم میاد و همچنین کد دانشجو برای هر درس چون رابطه دانشجو و درس 1:N هست.
البته این روش افزونگی داره احتمالا راه های بهتری هم باشه

aminmousavi
جمعه 14 شهریور 1393, 14:16 عصر
سلام دوست عزیز . بهتر بود سوالتون رو در تالار مربوطه یعنی ASP مطرح میکردین .
در خصوص ساخت گریدویو در CodeBehid میتونی از کد زیر اسنفاده کنی :

DataGrid datagrid = new DataGrid();
datagrid.DataSource = ds.Tables[0];
datagrid.DataBind();
this.Controls.Add(datagrid);


توی هر کنترلی بخوای دیتاگرید رو درج کنی باید فقط جای (فرض میخوام توی یک DIV درج کنم )

this.Controls.Add(datagrid);

بنویسی :

DIV.Controls.Add(datagrid);

royal93
جمعه 14 شهریور 1393, 17:33 عصر
این مرتبط با طراحی های قبلی شماست.الان تو سیستم دانشگاهی تعریف ترم دارن.خوب ذخیره میکنند که توی این ترم کدوم دانشجوها انتخاب واحد داشتن و یا اینکه اگر درسی توی یک ترم خواص برای دانشجو ثبت شده یعنی اینکه اون ترم دانشجو نمره هم داشته و انتخاب واحد کرده بعد بر اساس اون ترم های دانشجو رو تعیین میکنن و کارنامه تشکیل میدن
به عنوان مثال یک جدول با فیلد های سال و نیم سال و یک کلید خارجی که شماره دانشجوی هست
حالا هر شماره دانشجویی که موجود باشه یعنی اون دانشجو در اون ترم فعالیت داشته.
بعد تو قسمت در ها باز یک کلید خارجی هست که از جدول مربوط به ترم میاد و همچنین کد دانشجو برای هر درس چون رابطه دانشجو و درس 1:N هست.
البته این روش افزونگی داره احتمالا راه های بهتری هم باشه

آقای رامبد ممنون از توضیحاتتون ولی مشکل من اینا که گفتید نیس . مشکل من اینه که چجوری وقتی فرمم لود میشه به ازای تعداد ترمهای تحصیلی هر دانشجو (مثل 2 ترم ) ، 2 تا گرید ویو ساخته بشه و نمایش داده بشه .

royal93
جمعه 14 شهریور 1393, 17:35 عصر
سلام دوست عزیز . بهتر بود سوالتون رو در تالار مربوطه یعنی ASP مطرح میکردین .
در خصوص ساخت گریدویو در CodeBehid میتونی از کد زیر اسنفاده کنی :

DataGrid datagrid = new DataGrid();
datagrid.DataSource = ds.Tables[0];
datagrid.DataBind();
this.Controls.Add(datagrid);


توی هر کنترلی بخوای دیتاگرید رو درج کنی باید فقط جای (فرض میخوام توی یک DIV درج کنم )

this.Controls.Add(datagrid);

بنویسی :

DIV.Controls.Add(datagrid);


آقای موسوی ممنون از راهکارتون . امتحان میکنم ببینم چی میشه ....