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

نام تاپیک: مشکل در دو dropdownlist

  1. #1

    مشکل در دو dropdownlist

    سلام به دوستان
    من قبلاً در سایت جستجو کردم.ولی مشکله من کمی متفاوت از بقیه است.
    من در فرم خود از 2 تا drop down list استفاده کرده ام.که هر 2 از از پایگاه داده ای از اس کیو ال البته هر کدام از جدولی فیلدها یی را میخوانند.
    در یک لیست [اسامیه استادها]و در لیست دیگر [اسامیه دروس ]میباشد.که با انتخاب [استاد مربوطه]و [درس مربوطه] و سپس فشار دادن دکمه [ثبت]:ان درس خاص برای ان استاد خاص ثبت میشود .
    مشکل این جاست که وقتی که صفحه لود میشود.تمامه ایتم ها در 2 لیست دیده میشود.
    و وقتی که صفحه load میشود از هر دو لیست ایتم های اول آنها دیده میشود.
    مثلاً آقای [کریمی] و [ درس پروژه]اگر نخواهیم که ایتم دیگر لیست را انتخاب کنیم.و همان جا فقط بخواهیم که ایتم های اول هر لیست را به هم مربوط کنیم.و دگمه ثبت را فشار دهیم.لیستی که حاوی [اسامیه دروس] است در پایگاه داده ثبت نمیشود .البته ان هم فقط موقعی که در لود اولیه صفحه بدون تغییر بماند.و همان ایتم اولیه را از این لیست را که بطوره پیش فرض انتخاب شده را در نظر میگیریم
    این هم کدی که نوشتم:






    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.IsPostBack)
    {



    SqlConnection con4=new SqlConnection();
    con4.ConnectionString="workstation id=P;packet size=4096;integrated security=SSPI;data source=P;persist security info=False;initial catalog=project";
    SqlCommand com4=new SqlCommand();
    com4.Connection=con4;
    com4.CommandText="SELECT magta+' '+gerayesh+' '+pro_name as temp,project_code from project";

    con4.Open();
    SqlDataReader dtr1 = com4.ExecuteReader();
    mydrop1.DataSource = dtr1;

    mydrop1.DataTextField = "temp";

    mydrop1.DataValueField = "project_code";
    mydrop1.DataBind();



    dtr1.Close();

    con4.Close();

    //
    SqlConnection con3=new SqlConnection();
    con3.ConnectionString="workstation id=P;packet size=4096;integrated security=SSPI;data source=P;persist security info=False;initial catalog=project";
    SqlCommand com3=new SqlCommand();
    com3.Connection=con3;
    com3.CommandText="SELECT prof_name+' '+prof_family as temp,prof_code from professor";

    con3.Open();
    SqlDataReader dtr = com3.ExecuteReader();

    mydrop.DataSource = dtr;

    mydrop.DataTextField = "temp";

    mydrop.DataValueField = "prof_code";
    mydrop.DataBind();


    //
    dtr.Close();
    con3.Close();

    }
    }


    private void save_btn_Click(object sender, System.EventArgs e)
    { string master_capacity =capacity_txt.Text;
    SqlConnection con2=new SqlConnection();
    con2.ConnectionString="workstation id=P;packet size=4096;integrated security=SSPI;data source=P;persist security info=False;initial catalog=project";
    SqlCommand Com=new SqlCommand("INSERT INTO professor_project(prof_capacity,prof_code,project_ code)Values(@prof_capacity,@prof_code,@project_cod e)",con2);
    Com.Parameters.Add("@prof_code",TextBox1.Text );
    Com.Parameters.Add ("@prof_capacity",master_capacity);
    Com.Parameters.Add ("@project_code",TextBox3.Text );
    con2.Open();
    Com.ExecuteNonQuery();
    con2.Close();
    //TextBox3.Text=proj_code;
    TextBox2.Text=master_capacity;
    //TextBox1.Text=profe_code;
    }




    private void mydrop1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    proj_code=mydrop1.SelectedValue.ToString();

    TextBox3.Text=proj_code;
    }

    private void mydrop_SelectedIndexChanged(object sender, System.EventArgs e)
    {

    profe_code=mydrop.SelectedValue.ToString();
    TextBox1.Text=profe_code;

    }



  2. #2
    تا جایی که من از سوالتون متوجه شدم:
    مشکل شما اینه که وقتی آیتمی رو انتخاب نمی کنی و همون گزینه های اول لیست ها انتخاب شده اند و save رو میزنی اطلاعات ثبت نمیشه... و احتمالا ارور هم میده...
    اگه مشکل همینی باشه که من فهمیدم به این دلیله:
    شما موقع save میری از TextBox3 و TextBox1 مقادیر رو می خونی و توی DB میریزی
    خب طبیعیه که بار اول توی این دوتا تکست باکس مقداری نیست که بخواد ریخته بشه توی DB . ولی با انتخاب هر کدوم شما کدی نوشتی که تکست ها رو پر می کنه پس بعد از انتخاب درست کار می کنه.
    راه حل:
    شما باید توی جایی که بایند می کنید به لیست برای اولین بار تکست ها رو هم پر کنید.

    اما راه حل کلی تر و بهتر:
    از dropdown1.selectedvalue استفاده کنید که کلید رو بهتون میده و دیگه نیازی به ریختن توی تکست نیست.

  3. #3
    خوب من که از همین دستور استفاده کردم!!!

    شما منظورتون اینه که من کجا این دستور را بذارم؟؟؟؟

  4. #4
    خوب من که از همین دستور استفاده کردم!!!
    شما از همین استفاده کردی ولی selectedvalue رو میریزی توی یه تکست بعد از تکست می خونی... و به خاطر همین همیشه باید تکست رو پر کنی توی ایونت selectedchange همونطوریکه الان داری کار می کنی...
    ولی اگه مستقیما با selectedvalue کار کنی مشکلی پیش نمیاد.

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

  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
    نوشته شده توسط سار در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 11 دی 1386, 14:31 عصر
  4. انتخاب آیتم از DropDownList
    نوشته شده توسط محسن بابائی در بخش VB.NET
    پاسخ: 6
    آخرین پست: سه شنبه 08 اسفند 1385, 15:52 عصر
  5. ویرایش و انتخاب خودکار آیتم اول dropdownlist
    نوشته شده توسط eshaghi در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: چهارشنبه 01 آذر 1385, 14:02 عصر

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

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