PDA

View Full Version : سوال: پیدا کردن کامپوننت در datalist



mahshad2005
جمعه 28 خرداد 1389, 13:39 عصر
سلام
من میخوام در datalistamیک قسمت امتیاز دهی + یا - داشته باشم فرضا به محض کلیک بر روی دکمه + یک label را به عنوان پیغام دهد شما رای مثبت داده اید
حالا این پیغام را چطور پر کنم!!!
من داخل event مربوط به datalist : ItemCommand میخوام با کمک پارامتر e ،بتونمlabelرا پیدا کنم
که موفق هم می شم اما ا در این قسمت نمی تونم به label مقدار بدم!!!یعنی بعد از اجرای کامل میبینم اصلا پیغام منو نشون نمیده!!!
مثلا این سایت چطوری امتیاز دهی میکنه و بعد پیغام میده که شما امتیاز مثبت دادین!؟

hamedsabzian
جمعه 28 خرداد 1389, 14:07 عصر
اگه Label توی هر سطر DataList هست، وشما هم مقدارش رو ذخیره نمی کنید، و توی PostBack لیست DataBind میشه، خوب طبیعیه!

mahshad2005
جمعه 28 خرداد 1389, 19:03 عصر
اگه Label توی هر سطر DataList هست، وشما هم مقدارش رو ذخیره نمی کنید، و توی PostBack لیست DataBind میشه، خوب طبیعیه!

خب من الان چی کار کنم!:اشتباه:
شما پیشنهادتون چیه وقتی روی دکمه + هر سطر datalist کلیک شد یک label مقدار بگیره؟
تو event >item command به محض کلیک شدن روی دکمه ای در datalistاین eevent اجرا میشه و با توجه به datakey name مربوط به دکمه عملیات مربوط به آن دکمه را انجام میدم و label را پر می کنم که بقول شما مقدارش نمیمونه
به نظرت اگه من یه sataic string تعریف کنم و تو Itemcommand پرش کنم بعدش چی کار کنم؟!!!
اصلا این سایت چه جوری تشکر هاشو زیر نویس میکنه!
من مثل این می خوام باشه
لطفا ایده بدین:لبخندساده:

hamedsabzian
شنبه 29 خرداد 1389, 11:05 صبح
با توجه به توضیحاتتون، باید اطلاعات Lable رو در DB ذخیره کنید و با آن به عنوان فیلد داده ای برخورد کنید. اگه فقط یک نظر قراره ذخیره بشه، کافی یه Field به جدول Post ها افزوده بشه. در غیر این صورت یه جدول دیگه میزارید که که یک کلید خارجی با عنوان PostID داره و نظرات رو برای Post مربوطه توی اون ذخیره می کنید. و موقع نمایش هم با شیوه ای خاص (؟) نمایش می دهید.

با زدن دکمه ی نظر دهی هم اطلاعات رو توی DB ذخیره کنید و DataList ور دوباره Bind کنید.

mahshad2005
شنبه 29 خرداد 1389, 16:02 عصر
با توجه به توضیحاتتون، باید اطلاعات Lable رو در DB ذخیره کنید و با آن به عنوان فیلد داده ای برخورد کنید. اگه فقط یک نظر قراره ذخیره بشه، کافی یه Field به جدول Post ها افزوده بشه. در غیر این صورت یه جدول دیگه میزارید که که یک کلید خارجی با عنوان PostID داره و نظرات رو برای Post مربوطه توی اون ذخیره می کنید. و موقع نمایش هم با شیوه ای خاص (؟) نمایش می دهید.

با زدن دکمه ی نظر دهی هم اطلاعات رو توی DB ذخیره کنید و DataList ور دوباره Bind کنید.
سلام فکر کنم من بد بیان کردم من از label به عنوان یک message استفاده می کنم و میخوام به label مقدار بدم نه اینکه محتویات ان را داخل databse بخوام ذخیره کنم
من فقط میخوام label هر سطر datalistبه کاربر بگه شما رای + دادید یا شما رای - دادید
و مشکلم اینه که وقتی کلید + را میزنم میخوام labelam پر بشه
حالا شما بگین من چی کار کنم؟!!!
مرسی ،خیلی ممنون از توجه تون:قلب:

hamedsabzian
یک شنبه 30 خرداد 1389, 21:08 عصر
سلام
لطف کنید به این سوالات دقیق پاسخ دهید!
1. رای باید هر باری که کاربر لیست رو میبینه بهش نمایش داده بشه؟
منظورم اینه که مثلا کاربر اگه امروز به این مطلب رای داد، فردا هم اومد لیست رو ببینه معلوم باشه که دیروز به این مطلب مثلا رای + داده؟
اگه اینجوری باشه که باید رای توی DB ذخیره بشه!
2. لیست مطالب رو فقط یه نفرمیتونه ببینه، یا کاربرای مختلف این لیست رو میتونن ببینن و به مطالب رای بدن؟
3. شما DataList رو دستی Bind میکنید یا اینکه از DataSource استفاده می کنید؟


اگه دستی Bind می کنید و توی Page_Load اینکار رو می کنید، حتما عمل پر کردن DataList رو داخل شرط زیر انجام بدید!
if(!IsPostBack)
{
//کد مربوط به پر کردن DataList
}

mahshad2005
یک شنبه 30 خرداد 1389, 23:08 عصر
سلام
لطف کنید به این سوالات دقیق پاسخ دهید!
1. رای باید هر باری که کاربر لیست رو میبینه بهش نمایش داده بشه؟
منظورم اینه که مثلا کاربر اگه امروز به این مطلب رای داد، فردا هم اومد لیست رو ببینه معلوم باشه که دیروز به این مطلب مثلا رای + داده؟
اگه اینجوری باشه که باید رای توی DB ذخیره بشه!
2. لیست مطالب رو فقط یه نفرمیتونه ببینه، یا کاربرای مختلف این لیست رو میتونن ببینن و به مطالب رای بدن؟
3. شما DataList رو دستی Bind میکنید یا اینکه از DataSource استفاده می کنید؟


اگه دستی Bind می کنید و توی Page_Load اینکار رو می کنید، حتما عمل پر کردن DataList رو داخل شرط زیر انجام بدید!
if(!IsPostBack)
{
//کد مربوط به پر کردن DataList
}
سلام مرسی که جوابم رو می دین
1- باید بگم آره من تو بانکم ذخیره می کنم که هر فرد چه رای داده و تو بر نامه ام کنترل میکنم که رای داده یا نه و چه نوع رای + یا -
مورد اول کاملا حق با شماست
2-همه کاربر ها می تونن ببینن حالا اگه لاگین کرده باشه می تونه رای بده و لاگین کنه منطبق بر نظر دهی قبلی که + داده یا - label های هر سطر مقدار بگیرن
اگرم که لاگین کنه و قبلا هیچ رای نداده باشه به محض کلیک بر روی فرضا دکمه + labelمقدار بگیره که شما رای + دادین
3-نه من از object datasource ااستفاده کردم وdatalistمستقیما به objectdatasource که استفاده کردم bind کردم

مشکل من اینه که label ها رو در کدوم eventو کی کجا چه جوری پر کنم؟
مرسی:قلب::لبخندساده:

hamedsabzian
دوشنبه 31 خرداد 1389, 10:38 صبح
توي رويداد ItemCommand مي توني مقدار Label رو تغيير بدي و تغييرات رو توي DB ذخيره كني، اينجا را ببينيد:
http://barnamenevis.org/forum/showthread.php?t=203666&page=2&page=2

براي تغيير متن Label به + يا - توي رويداد ItemDataBound بايد كد بنويسيد.

ولي اينكه مي خوايد براي هر نفر نظرسنجي كنيد، نظرات بايد توي يك جدول جداگانه ذخيره بشن، كه يك كليد از جدول كاربرها مي گيره.