PDA

View Full Version : ساخت جدولی که سطر و ستونهاش متغیر باشه



لوک خوش شانس
چهارشنبه 22 شهریور 1385, 01:20 صبح
من یه جدول دارم که 5 تا ستون و تعدادی هم سطر داره
و یه دیتابیس هم دارم که یه فیلد ID و یه فیلد Body داره .
حالا می خوام بترتیب از راست به چپ مطالب ID 1 داخل اولین خانه از راست بشینه و همین طور دوم و سومی تا به پنجمین خانه در سطر اول برسه ، حالا باید بعد از قرار دادن اطلاعات 5 تا فیلد که در سطر ال جدول گزاشته اشاره گر بیاد و سطر دوم رو درست و اونو همینطور پر کنه .

کسی راه حلی داره ؟

لوک خوش شانس
سه شنبه 28 شهریور 1385, 15:47 عصر
واقعاً ممنون از جواب های عالی شما دوستان

اَرژنگ
سه شنبه 28 شهریور 1385, 18:00 عصر
واقعاً ممنون از جواب های عالی شما دوستان
۱) سوال شما مبهم بود، منتظر بودیم شاید یکمی توضیح بدید.
۲) از DataTable استفاده میکنید؟

لوک خوش شانس
سه شنبه 28 شهریور 1385, 21:00 عصر
http://barnamenevis.org/forum/attachment.php?attachmentid=5042&d=1158688014
به شکل بالا نگاه کنید .
من می خوام اطلاعات یه فیلد مشخص رو داخل این جدول به ترتیب شماره های اون جایگزین کنم .
بیشتر توضیح میدم
مثلاً دیتابیس من تعداد زیادی رکورد داره که هر رکورد یه فیلد به نام ID و یه فیلد به نام Body داره .
ID= 1 ---- Body = ali
ID= 2 ---- Body = mahmod
ID= 3 ---- Body = saman
ID= 4 ---- Body = fatemeh
ID= 5 ---- Body = sanaz
ID= 6 ---- Body = karim
حالا می خوام محتویات Body رو داخل جدول بزارم . یعنی محتویات ID=1 رو داخل قسمت 1 و محتویات ID=2 رو داخل قسمت دوم تا ID=5 داخل قسمت 5 و بعد از این بیاد سطر دوم و محتویات ID=6 رو داخل قسمت 6 در سطر دوم بزاره و همینطور سطر و ستون هاشو خودش درست کنه .

ببین در حالت معمولی ما یه <tr> </tr> رو داخل حلقه میزارم تا مثل همون سطر ( که داخلش هر چند تا ستون داره فرقی نمی کنه ) برای ما درست می کنه .

<table cellpadding="0" cellspacing="0">
حلقه
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
حلقه
</table>
حالا من می خوام که ستون هاشو هم خودش درست کنه . و قابل تغییر باشه
یه جور دیگه می گم . معمولاً اطلاعاتی که از دیتابیس بر میداریم و نمایش میدیم به صورت سطری زیر هم قرار می گیرند . حالا من می خوام که به تعداد مشخص ( مثلاً 5 تا ) کنار هم باشن و بعد برن سطر بعدی رو پر کنن باز 5 تا که در سطر بعدی پر شد بره سطر سوم و الی آخر ...

اَرژنگ
چهارشنبه 29 شهریور 1385, 10:04 صبح
<table dir="rtl" cellpadding="0" cellspacing="0">
حلقه
if index mod 6 = 0 then output " <tr>"
<td>Record[index]</td>
if index mod 6 = 0 then output " </tr>"
حلقه
</table>

لوک خوش شانس
چهارشنبه 29 شهریور 1385, 11:57 صبح
ببینم این if و ... دستورات ASP هست دیگه . میشه یکم در موردش تضیح بدی ؟ اون mod 6 چیه

اَرژنگ
چهارشنبه 29 شهریور 1385, 12:29 عصر
ببینم این if و ... دستورات ASP هست دیگه . میشه یکم در موردش تضیح بدی ؟ اون mod 6 چیه
مُد باقیمانده تقسیمه، مثلاً ۵ مُد ۴ یعنی باقیمانده ۵ تقسیم بر ۴ = ۱
۹ مُد ۴ هم میشه ۱
۱۳ مُد ۴ هم میشه ۱

یعنی هر چهار بار یکدفعه دوباره ۱ بدست میاد.


شما میخواهید که هر ۵ تا رکورد یکبار یک سطر جدید شروع کنید،
اگر ایندکس از ۰ شروع بشه و تا مثلاً تا ۱۲ ادامه داشته باشه.

۰ مُد ۵= ۰ ،(یک تی|آر شروع کن) ، رکورد ۰ را بنویس
۱ مُد ۵ = ۱ ، رکورد ۱ را بنویس
۲ مُد ۵ = ۲ ،رکورد ۲ را بنویس
.
۴ مُد ۵= ۴ ، رکورد ۴ را بنویس (تی|آر ) را ببند

۵ مُد ۵= ۰ ،(یک تی|آر شروع کن) ، رکورد ۵ را بنویس
۶ مُد ۵ = ۱ ،رکورد ۶ را بنویس
۷ مُد ۵ = ۲ ،رکورد ۷ را بنویس
.
۹ مُد ۵= ۴ ، رکورد ۴ را بنویس (تی|آر ) را ببند
.
.
.

همینطوری تا ۱۲ ادامه بدید، منتها چونکه ۱۲ مضربه ۵ نیست باید تا مضربه بعدی ۵
که ۱۵ هست ادامه بدید.
کد قبلیم کامل نیست. من وی|بی خوب نمیدونم و با ای|اس|پی هم بلد نیستم.
یک مثال برایه سی|شارپ و ای|اس|پی دات نت ۲.۰ درست میکنم اگر به کارتان میاد بگید میفرستم، ولی این را شما یکمی باهاش بازی کنید خیلی بهتر یاد میگیرید.

لوک خوش شانس
پنج شنبه 30 شهریور 1385, 12:29 عصر
آرژنگ جان دستت درد نکنه من هم گیر همین Mod بودم . نمی دونستم که تو ASP کم دستورش همینه . ممنون

این برنامه من ASP کلاسیکه هنوز وقت نکردم به سوی دات نت هجرت کنم .

پس با این تفاسیر اگه من یه کانتر داخل حلقه بزارم و تعداد کانتر رو تقسیم بر 5 کنم هر وقت که نتیجه صفر شد میره سطر بعد . یعنی tr رو مینده و یه tr جدید باز میکنه .

ببینم شکل کلی دستور همینه ؟

اگه بخوایم 28 رو تقسیم بر 2 کنیم . میشه 28Mod 2 درسته ؟



میرم که امتحانش کنم .

اَرژنگ
پنج شنبه 30 شهریور 1385, 16:43 عصر
تقریباً
mod
باقیمانده است.
اگر بخواهید ببینید که یک عدد چند بار تقسیم بر یک عدد دیگه میشه از div
استفاده کنید. مثال:



28 mod 2 = 0
27 mod 2 =1
26 mod 2 = 0
25 mod 2 = 1

28 div 2 = 14
28 div 14 = 2

5 mod 4 =1
3 div 2 = 1
4 mod 3 = 3