نمایش نتایج 1 تا 9 از 9

نام تاپیک: IndexChanging در DropDownList

  1. #1

    IndexChanging در DropDownList

    سلام
    مشکل من با DropDownList در ASP.Net است
    من 3 تا DropDown دارم که قرار است گزینه ای که در اولی انتخاب می شود به عنوان ورودی دومی است و دومی بنا به گزینه اولی پر می شود و بنا به چیزی که در این دو انتخاب می شود ، DropDown سوم پر می شود
    مشکل در این است که وقتی کاربر اولین آیتم نمایش داده شده در هر کدام از DropDownها را انتخاب می کند، رویداد IndexChanged اتفاق نمی افتد
    به عبارت دیگر اگر کاربر اولین آیتم DropDown اول را انتخاب کند ، DropDownدوم اصلا پر نمی شود و به همین ترتیب DropDown سوم هم پر نمی شود و اصلا انگار داده ای به آن Bound نشده

    می توانید به من کمک کنید ؟

  2. #2
    خصوصیت aUTOPOSTBACK رو توی DROPDOWN ها TRUE کنید.

  3. #3
    این کار را کردم
    همه چیز درست کار می کند، فقط مشکل زمانی است که برای اولین بار کاربر همان اولین آیتمی را که به طور پبش فرض در DropDown اول هست را انتخاب کند
    یعنی برای بار اول که Page لود می شود باید DropDown دوم و سوم هم پر باشند اما چون در DataBound هر کدام از آنها ورودی را کنترل DropDown قبلی معرفی کردم ، وقتی Page لود می شود DropDown دوم و سوم خالی است !

  4. #4
    خوب این طبیعی که خالی باشند ؟ وقتی شما میگید drop down 2 ورودیشو از اولی میگیره خوب وقتی page load میشه که هنوز ورودی نگرفته
    اگر هم به نظرتون زشت میاد که وجود داشته باشند visible اونارو false کنید

  5. #5
    نه ، طبیعی نیست
    چون وقتی Page لود می شه ،‌ DropDown اول خالی نیست و داده هایش را از DataBase گرفته.
    حال اگر کاربر دقیقا همان آیتمی را بخواهد که هنگام Page Load شدن در DropDown اول هست ، یعنی اولین آیتم ، دو DropDown دیگر خالی می مانند
    او حتما باید یکبار مثلا آیتک دوم یا سوم DropDown اول را انتخاب کند تا رویداد IndexChanged اتفاق بیفتد و دومی و سومی هم پر شوند و بعد دوباره برگردد و آیتم اول را انتخاب کند !

  6. #6
    فکر کنم برای اینکه مشکلت حل شود باید در page load صفحه ات ، به طور پیش فرض متغیری که index از dropdown اول را مقداردهی میکند ، برابر index اول از dropdown اولت باشد.
    یا اینکه کافی است در page load از صفحه ات عنصر اول از dropdown1 را selected قراردهی.
    مثلاً:

    dropdown1.selectedindex=0;

  7. #7
    باید خودت روال IndexChanged رو در اولین مرتبه فراخونی کنی.
    پس از بررسی شرط PostBack نبودن صفحه و بایند DropDownList اصلی در روال Page_Load، ، روال SelectedIndexChanged اون رو به شکل زیر فراخونی کن:

    Me.DropDown1_SelectedIndexChanged(DropDownList1, e)

    در روال SelectedIndexChanged کنترل DropDownList اول نیز باید روال SelectedIndexChanged کنترل DropDownList دوم رو فراخونی کنی.

    Me.DropDownList2_SelectedIndexChanged(sender, e)

    فرایند بایند DropDown اول در روال Page_Load و بایند DropDownList دوم در روال SelectedIndexChanged کنترل DropDown اول و بایند DropDownList سوم در روال SelectedIndexChanged کنترل DropDownList دوم انجام می پذیره.

    موفق باشید.

  8. #8
    مشکل اینه که باید داده های DropDown از دیتا بیس پر شود و این کار را اگه خودم بخوام بکنم ، داده ها درست بایند نمی شن و کلی مشکل داره
    من این کار را به طور اتوماتیک در خود DropDown ها انجام دادم
    سوالمو جور دیگه مطرح می کنم
    فرض کنید دو تا DropDown دارم که آیتم انتخابی در اولی به عنوان ورودی دومی است
    حال فرض کنید به خاطر ورودی های قبلی کاربر در DropDown اول تنها یک آیتم وجود دارد
    در این صورت هرگز رویداد IndexChangedاتفاق نمی افتد حتی اگر کاربر بارها روی این تنها آیتم کلیک کند !!!
    چطوری این مشکل رو حل کنم ؟
    وقتی DropDown فقط شامل یک آیتم باشد ، هرگز IndexChanged اتفاق نمی افتد !

  9. #9
    کاربر تازه وارد آواتار Y2K
    تاریخ عضویت
    مهر 1385
    محل زندگی
    Location
    پست
    56
    مشکل اینه که باید داده های DropDown از دیتا بیس پر شود و این کار را اگه خودم بخوام بکنم ، داده ها درست بایند نمی شن و کلی مشکل داره
    من این کار را به طور اتوماتیک در خود DropDown ها انجام دادم
    چه مشکلاتی





    یه روش اینه که dropdown اولی رو بصورت دستی پر کنی و قبل از اینکه دیتابیس رو بریزی داخلش یه خط مثلا: یک گزینه رو انتخاب کنید . اضافه کنی
    مثل کد زیر
     

    City.Items.Clear();
    City.Items.Add("شهر خود را انتخاب کنید");

    while(readcity.Read())
    {
    ListItem list= new ListItem(readcity.GetValue(1).ToString(),readcity. GetValue(0).ToString());
    City.Items.Add(list);
    }

    که city نام dropdownlist است
    و داده ها رو دونه دونه از توی دیتاریدر می خونه و داخل اون قرار میده
    در آخر هم
     
    City.SelectedIndex=0

تاپیک های مشابه

  1. مقدار اولیه dropdownlist
    نوشته شده توسط ch2007 در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: شنبه 15 خرداد 1389, 07:15 صبح
  2. انتخاب ایتم های dropdownlist دوم بر اساس dropdownlist اول
    نوشته شده توسط fereshte22 در بخش VB.NET
    پاسخ: 14
    آخرین پست: شنبه 22 دی 1386, 22:06 عصر
  3. انتخاب آیتم از DropDownList
    نوشته شده توسط محسن بابائی در بخش VB.NET
    پاسخ: 6
    آخرین پست: سه شنبه 08 اسفند 1385, 15:52 عصر
  4. ویرایش و انتخاب خودکار آیتم اول dropdownlist
    نوشته شده توسط eshaghi در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: چهارشنبه 01 آذر 1385, 14:02 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •