PDA

View Full Version : مشکل با this.IsPostback در یوزر کنترل



bftarane
پنج شنبه 05 بهمن 1391, 22:29 عصر
سلام.

یه اتفاق خیلی عجیب.
من یه یوزرکنترل برای آپلود فایل درست کردم

یه لیست باکس وجود داره که توش اسم پوشه ها رو نشون میدم
و یه دراپ دان که توش مجموعه ها رو نشون می دم مثل عکس، فیلم
من این یوزرکنترل رو به صورت داینامیک با کلیک روی یه ایمیج باتن لود می کنم
حالا مشکلم اینه که من در رویداد لود این یوزرکنترل این رو نوشتم


if (!this.IsPostBack)
{
bindListBox();

binddrpcat();
}
که وقتی دیدم لیست باکس و دراپ دان اطلاعاتی توشون نشون داده نمیشه
اون ispostback رو برداشتم
دیدم مشکل رفع شد
یعنی کدم به این فرم در اومد

bindListBox();

binddrpcat();
ولی حالا یه مشکل دیگه پیش می یاد
وقتی یه آیتم از دراپ دان انتخاب میشه چون postback اتفاق می افته
با هر انتخاب آیتم دراپ دان مجدداً بایند میشه
مثلاً اگه من دو مجموعه عکس و فیلم دارم
یه همچین چیزی در دراپ دان نشون داده میشه
عکس
فیلم
عکس
عکس
فیلم
عکس
عکس

لطفاً راهنمایی کنید.
چرا در صفحات معمولی این مشکل پیش نمی یاد؟
ولی در یوزرکنترل این مشکل پیش میاد؟
در ضمن من به جای this.ispostback از page.ispostback هم استفاده کردم فرقی نداشت نتیجه.

ممنونم.

bftarane
پنج شنبه 05 بهمن 1391, 23:22 عصر
سلام بچه ها با این کد مشکل حل شد

private bool IsUCPostBack { get { object o = ViewState["S2UC"]; return o == null; } set { ViewState["S2UC"] = true; } } protected void Page_Load(object sender, EventArgs e) { if (IsUCPostBack) { IsUCPostBack = true; ... } else { ... }
منبعش هم این لینکه
http://stackoverflow.com/questions/9701649/c-dynamic-user-control-ispostback-returning-true-event-though-the-uc-is-loaded
کسی می تونه کدهای بالا رو به من توضیح بده?