PDA

View Full Version : DropDown_SelectedIndexChanged داخل دیتاگرید



iekrang
چهارشنبه 24 خرداد 1385, 12:01 عصر
یکی از ستونهای دیتاگریدم DropDown هست.من میخواهم با تغییر این DropDown ستون کنارش تغییر کنه.
(ستون کنار عددی هست که مجموع این ستون هم در Footer اون نوشته شده)
1- حالا چطور میتونم این ستون و Footer رو در خاصیت DropDown_SelectedIndexChanged دوباره بر اساس مقدار جدید DropDown، بایند کنم؟
2- فکر کردم که خاصیت ItemDataBind دیتاگرید رو فراخوانی کنم.اگر این کار درسته چطور باید این تابع رو صدا بزنم؟
ممنون میشم اگر من رو راهنمایی کنید.

Farhad.B.S
چهارشنبه 24 خرداد 1385, 12:24 عصر
زمانی که مقدار DropDown تغییر میکنه؛ یا به صورت خودکار یا توسط خود شما صفحه مجددا لود میشه.
بنابراین Grid هم باید دوباره بایند بشه (درصورتیکه قرار نیست گرید تو هر PostBack بایند بشه میتونی اون رو به صورت دستی بایندش کنی)
در این حالات ItemDataBind گرید مورد نظر اجرا میشه و میتونی داخل همین رویداد مشخص کنی که ستون Y در سطر X مقدارش رو از Drop مورد نظر بخونه و همچنین مقدار Footer هم در همینرویداد دوباره محاسبه بشه.

در واقع فقط کافیه DataGrid.DataBind رو صدا بزنی تا آیتم ها دوباره بایند شند و بعد مطابق روش بالا عمل کن.

iekrang
چهارشنبه 24 خرداد 1385, 19:54 عصر
ممنون از توجهتون ولی این راه درست نیست(بایند کردن دیتاگرید)
آخه مقدار دراپ داون دوباره به حالت Default بر میگرده.
اگر ممکنه بیشتر راهنماییم کنید.

manager
پنج شنبه 25 خرداد 1385, 00:08 صبح
بهتره برای نمایش آیتم ها از ItemTemplate استفاده کنید. بعد از اینکه این کار رو کردید برای ستونی که عددش عوض می شه یعنی ستون بغی دستی DropDownList یک Label قرار دهید به صورتی که یک ID مشخص (برای شما) داشته باشد و متن داخلش هم Bind شده باشد.
بسیار خوب ... حالا در همون تمپلیت شماره سطر جاری رو به CommandArgument دراپ دان لیست Bind کنید..
امیدوارم که خوب توضیح داده باشم (آخی خیلی خستم) قضیه خیلی سادست هر بار که رویداد DropDown شما اجرا بشه از طریق شماره ردیف ارسال شده به رویداد می تونید ردیف دیتاگرید مورد نظر رو پیدا کنید وقتی ردیف رو پیدا کردید کنترل Label مورد نظر رو پیدا می کنید و مقدارش رو تغییر می دید به همین سادگی..
در پایان نیز تمام ردیف ها رو دونه دونه طی کنید و کنترل Labelشون رو پیدا کنید و با هم جمع بزنید...

iekrang
پنج شنبه 25 خرداد 1385, 10:48 صبح
متاسفانه من متوجه نشدم.
اگر لطف کنید که مرجعی هم معرفی کنید ممنونتون میشم.