PDA

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



mojtaba-n
یک شنبه 07 دی 1393, 23:31 عصر
با سلام خدمت دوستان
من یه صفحه طراحی کردم که آیتم انتخاب شده در صفحه جستجو رو به طور کامل نمایش میده. برای این کار از دیتالیست استفاده کردم. میخوام محتوای بعضی از فیلدها که از دیتابیس واکشی میشه قبل از بایند شدن به لیبلهای داخل دیتالیست رو توسط کدنویسی با #C تغییر بدم. مثلا تاریخ به صورت میلادی داخل دیتابیس ذخیره شده و من می خوام قبل از نمایش اون رو به شمسی تبدیل کنم. سوال من اینه که کد مربوطه رو کجا و داخل چه رویدادی باید بنویسم؟:متفکر:

parvizwpf
دوشنبه 08 دی 1393, 09:05 صبح
شما وقتی داده رو لود کردید داده شما هر چی باشه میتونید برید و تغییرش بدید میشه کد لود دیتاتون رو بگذارید.

mojtaba-n
دوشنبه 08 دی 1393, 15:26 عصر
کد خاصی نداره ، یه DataList روی فرم گذاشتم و داخلش چندتا Label هست که به فیلدهای مربوطه Bind شدن.
DataList هم از طریق sqlDataSource داده ها رو از Database می خونه.

ahmad156
دوشنبه 08 دی 1393, 16:28 عصر
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datalist.itemdatabound%2 8v=vs.110%29.aspx

mojtaba-n
دوشنبه 08 دی 1393, 20:17 عصر
مایکروسافت خیلی قضیه رو پیچیده کرده!
برای یکی از فیلدها که مقدار کیلومتر طی شده رو نشون میده من میخوام موقع نمایش کلمه کیلومتر به انتهای عدد ذخیر شده در دیتابیس اضافه بشه ، این کد رو نوشتم :
protected void Label_PreRender(object sender, EventArgs e)
{
string Value = (DataList1.Items[0].FindControl("Label") as Label).Text;
Value = Value + " کیلومتر";
(DataList1.Items[0].FindControl("Label") as Label).Text = Value;
}

این کد جواب میده ولی مشکل اینه که هربار که صفحه refresh بشه مجددا کلمه کیلومتر اضافه میشه و بعد از چندبار رفرش شدن ، فیلد مربوطه اینجوری نشون داده میشه :
100000 کیلومتر کیلومتر کیلومتر کیلومتر کیلومتر کیلومتر ...
درواقع مشکل اساسی من اینه که میخوام بین دیتاهای داخل دیتابیس و لیبل های داخل دیتالیست قراربگیرم. یعنی وقتی مقدار یک فیلد از داخل دیتابیس خونده شد اون رو وارد یه تابع کنم و تغییرات مورد نظر رو بدم و بعد مقدار تغییر یافته به لیبل های روی دیتالیست بایند بشه. امیدوارم که تونسته باشم منظور خودم رو توضیح بدم.

mojtaba-n
دوشنبه 08 دی 1393, 20:35 عصر
امیدوارم این تصویر منظور من رو بهتر توضیح بده :
127001

mojtaba-n
دوشنبه 08 دی 1393, 20:36 عصر
منتظر یاری سبز اساتید محترم هستم :خجالت:

ahmad156
دوشنبه 08 دی 1393, 20:56 عصر
جوابتون همون لینکی هست که گفتم.
Lable_PreRender چرا؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!

mojtaba-n
دوشنبه 08 دی 1393, 21:25 عصر
سردرنیاوردم. خیلی پیچیدست. چیزی که من میخوام نهایتاً باید با دوسه خط کد حل بشه.
لطفا اگه ممکنه خودتون کدی که باید بنوبیسم رو بگید. از لینک مایکروسافت چیزی نفهمیدم.

ahmad156
دوشنبه 08 دی 1393, 21:41 عصر
چیزی که من میخوام نهایتاً باید با دوسه خط کد حل بشه.

:متعجب::متعجب::متعجب::متعجب:: تعجب::متعجب::متعجب:
دوست عزیز جوابتون خیلی ساده و راحت توی لینک گفته شده.شما زحمت نمیدین به خودتون حتی رو کد فکر کنین.چون اگر فکر میکردین نمیگفتین کدتون با دوسه خط حل شه.
اینجا توی تالار راه حل به شما ارائه میشه نه کد آماده