Member 14757261 Ответов: 1

Мой выпадающий список просто позволяет выбрать один элемент как только я выбираю item2 он извлекает и выбирает item1


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Messaging;
using System.Net;
using System.Net.Mail;


namespace exam
{
    public partial class CreatAgroup : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["seniorConnectionString"].ConnectionString);
            con.Open();
            using (SqlCommand cmd = new SqlCommand("select st_name,STID from dbo.[Student] ", con))
            {

                using (SqlDataReader read = cmd.ExecuteReader())
                {




                    DropDownList3.DataSource =  read ;


                    DropDownList3.DataTextField = "st_name";
                    DropDownList3.DataValueField = "STID";

                    DropDownList3.DataBind();
                }
            }
            using (SqlCommand cmd = new SqlCommand("select S_name,SID from dbo.[Suporvisor(commtiee)] ", con))
            {

                using (SqlDataReader read = cmd.ExecuteReader())
                {




                    DropDownList2.DataSource = read;


                    DropDownList2.DataTextField = "S_name";
                    DropDownList2.DataValueField = "SID";

                    DropDownList2.DataBind();
                }
            }
           
            

        }
        protected void DropDownList2_SelectedIndexChanged(Object Sender, EventArgs e)
        {
            Label1.Text = DropDownList2.SelectedValue.ToString();
            
        }
        protected void DropDownList3_SelectedIndexChanged(Object Sender, EventArgs e)
        {
            Label2.Text = DropDownList3.SelectedValue.ToString();

             
        }
          
    }
} if i want for example select second name in drowpdown list it is just allow select the first one

And this source code
<pre><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CreatAgroup.aspx.cs" Inherits="exam.CreatAgroup" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            text-align: center;
            font-size: xx-large;
        }
        .auto-style2 {
            width: 100%;
        }
        .auto-style3 {
            width: 486px;
        }
        .auto-style4 {
            margin-left: 932px;
            margin-top: 69px;
        }
        .auto-style5 {
            width: 278px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <p class="auto-style1">
            Add Group for Sineor Project</p>
        <p class="auto-style1">
             </p>
        <table class="auto-style2">
            <tr>
                <td class="auto-style3">Student</td>
                <td>Suporvisor</td>
            </tr>
            <tr>
                <td class="auto-style3">
                    <asp:DropDownList ID="DropDownList3" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList3_SelectedIndexChanged">
                    </asp:DropDownList>
                </td>
                <td>
                    <asp:DropDownList ID="DropDownList2" runat="server"  AutoPostBack="true" Height="42px" OnSelectedIndexChanged="DropDownList2_SelectedIndexChanged" Width="255px">
                    </asp:DropDownList>
                </td>
            </tr>
        </table>
        <p>
             </p>
        <table class="auto-style2">
            <tr>
                <td class="auto-style5">Selected Student name</td>
                <td>
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="auto-style5">Selected Suporvisor name</td>
                <td>
                    <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
                </td>
            </tr>
        </table>
        <p>
             </p>
        <p>
             </p>
        <p>
             </p>
        <p>
             </p>
        <p>
             </p>
        <p>
             Create a Groub   <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        </p>
        <asp:Button ID="Button1" runat="server" CssClass="auto-style4" Height="52px" Text="Add Groub" Width="347px" />
    </form>
</body>
</html>


Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Messaging;
using System.Net;
using System.Net.Mail;


namespace exam
{
    public partial class CreatAgroup : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["seniorConnectionString"].ConnectionString);
            con.Open();
            using (SqlCommand cmd = new SqlCommand("select st_name,STID from dbo.[Student] ", con))
            {

                using (SqlDataReader read = cmd.ExecuteReader())
                {




                    DropDownList3.DataSource =  read ;


                    DropDownList3.DataTextField = "st_name";
                    DropDownList3.DataValueField = "STID";

                    DropDownList3.DataBind();
                }
            }
            using (SqlCommand cmd = new SqlCommand("select S_name,SID from dbo.[Suporvisor(commtiee)] ", con))
            {

                using (SqlDataReader read = cmd.ExecuteReader())
                {




                    DropDownList2.DataSource = read;


                    DropDownList2.DataTextField = "S_name";
                    DropDownList2.DataValueField = "SID";

                    DropDownList2.DataBind();
                }
            }
           
            

        }
        protected void DropDownList2_SelectedIndexChanged(Object Sender, EventArgs e)
        {
            Label1.Text = DropDownList2.SelectedValue.ToString();
            
        }
        protected void DropDownList3_SelectedIndexChanged(Object Sender, EventArgs e)
        {
            Label2.Text = DropDownList3.SelectedValue.ToString();

             
        }
          
    }
}

phil.o

Непонятный. Какого поведения вы ожидаете? Какой из них вы испытываете вместо этого?
Пожалуйста, уточните свой вопрос.

Stefan_Lang

Это похоже на C#, а не на C++. Пожалуйста, установите правильные теги на свой вопрос.

Кроме того, вы смешали код, свой пояснительный текст и некоторый HTML-источник в форматировании кода. Пожалуйста, разделите их и используйте соответствующее форматирование для каждого из них.

Наконец, когда вы публикуете так много кода, Вы должны приложить некоторые усилия, чтобы указать, где в коде он работает не так, как ожидалось. Это очень мало работы для вас, но требует много усилий для тех, кто пытается помочь.

1 Ответов

Рейтинг:
0

Richard Deeming

Вы повторно связываете оба списка при каждой загрузке страницы. Вам нужно обернуть этот код в if (!IsPostBack) тест.

Кроме того, оберните ваши SqlConnection в using блок.

И SelectedValue уже возвращает string- нет никакой необходимости звонить .ToString() на нем.

public partial class CreatAgroup : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["seniorConnectionString"].ConnectionString))
            {
                con.Open();
                using (SqlCommand cmd = new SqlCommand("select st_name, STID from dbo.[Student]", con))
                using (SqlDataReader read = cmd.ExecuteReader())
                {
                    DropDownList3.DataSource =  read;
                    DropDownList3.DataTextField = "st_name";
                    DropDownList3.DataValueField = "STID";
                    DropDownList3.DataBind();
                }
                
                using (SqlCommand cmd = new SqlCommand("select S_name, SID from dbo.[Suporvisor(commtiee)]", con))
                using (SqlDataReader read = cmd.ExecuteReader())
                {
                    DropDownList2.DataSource = read;
                    DropDownList2.DataTextField = "S_name";
                    DropDownList2.DataValueField = "SID";
                    DropDownList2.DataBind();
                }
            }
        }
    }
    
    protected void DropDownList2_SelectedIndexChanged(Object Sender, EventArgs e)
    {
        Label1.Text = DropDownList2.SelectedValue;
    }
    
    protected void DropDownList3_SelectedIndexChanged(Object Sender, EventArgs e)
    {
        Label2.Text = DropDownList3.SelectedValue;
    }
}

NB: Вам следует избегать использования "специальных" символов в именах таблиц и столбцов SQL. Придерживайтесь использования A-Z, 0-9 и символа подчеркивания _ Как вы уже обнаружили, использование "специальных" символов затрудняет написание запросов, так как вам приходится заключать имя в квадратные скобки.