Member 13771716 Ответов: 0

Gridview не отображается при выборе значения в раскрывающемся столбце


Привет,

В настоящее время у меня есть выпадающий список, содержащий значения из столбца в привязанной к нему базе данных. У меня есть код c#, который мне нужно изменить отображаемые данные в gridview в зависимости от выбранного значения из выпадающего списка.

На данный момент при запуске вообще нет ошибок, однако gridview не появляется.

Любая помощь будет оценена по достоинству!

Страница Загрузки С#
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SqlConnection con = new SqlConnection(@"Data Source=(local)\;Initial Catalog=SmallBatch;Integrated Security=True;");

                con.Open();

                String getState = "Select Username From Site ";


                DataTable dt = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter(getState, con);
                da.Fill(dt);


                DropDownList1.DataSource = dt;
                DropDownList1.DataTextField = "Username";
                DropDownList1.DataValueField = "Username";
                DropDownList1.DataBind();


                con.Close();
            }


Выбранный Показатель Изменился С#
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
       {
           SqlConnection con = new SqlConnection(@"Data Source=(local)\;Initial Catalog=SmallBatch;Integrated Security=True;");
           SqlDataAdapter DataAdapter = new SqlDataAdapter(string.Format("SELECT Stock_Take.Username, Item.ItemID, Item.ItemDesc, Stock_Take_Item.BarQuantity, Stock_Take_Item.StorageQuantity, Stock_Take.StockTakeIDNew FROM Item INNER JOIN Stock_Take_Item ON Item.ItemID = Stock_Take_Item.ItemID INNER JOIN Stock_Take ON Stock_Take_Item.StockTakeIDNew = Stock_Take.StockTakeIDNew where Stock_Take.Username =  = '" + DropDownList1.SelectedValue + "'"), con);

           DataTable table = new DataTable();
           DataAdapter.Fill(table);
           GridView1.DataSource = table;
           GridView1.DataBind();
       }


Код Gridview

<asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>
            
            <asp:GridView ID="GridView1" runat="server" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Horizontal">
                <FooterStyle BackColor="#CCCC99" ForeColor="Black" />
                <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
                <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
                <SortedAscendingCellStyle BackColor="#F7F7F7" />
                <SortedAscendingHeaderStyle BackColor="#4B4B4B" />
                <SortedDescendingCellStyle BackColor="#E5E5E5" />
                <SortedDescendingHeaderStyle BackColor="#242121" />

                <Columns>
                    <asp:TemplateField HeaderText="Item ID" HeaderStyle-CssClass="gridview-header">
                        <ItemTemplate>
                            <asp:Label ID="itemIDAdmin" Text='<%# Eval("ItemID")%>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="Item Description" HeaderStyle-CssClass="gridview-header">
                        <ItemTemplate>
                            <asp:Label ID="itemDescAdmin" Text='<%# Eval("ItemDesc")%>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                      
                    <asp:TemplateField HeaderText="Bar Quantity" HeaderStyle-CssClass="gridview-header">
                        <ItemTemplate>
                            <asp:Label ID="barQuantityAdmin" Text='<%# Eval("BarQuantity")%>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    
                    <asp:TemplateField HeaderText="Storage Quantity" HeaderStyle-CssClass="gridview-header">
                        <ItemTemplate>
                            <asp:Label ID="storageQuantityAdmin" Text='<%# Eval("StorageQuantity")%>' runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>

                </Columns>


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

Я попытался заполнить gridview отдельным методом, но все равно тот же результат.

an0ther1

Используйте свой отладчик - работает ли обработчик событий DropDownList1_SelectedIndexChanged огонь?
Действительно ли запрос возвращает результаты? Это может быть опечатка, но ваш запрос содержит следующее в предложении where;
Stock_Take.Имя Пользователя = = '" + DropDownList1.SelectedValue + "'"
Обратите внимание на два знака равенства - это неверно

с уважением

Member 13658881

установить autopostback элемента управления=истина
&ЛТ;как ASP:dropdownlist с ИД="DropDownList1" атрибут runat="сервер" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" autopostback элемента управления="правда"и GT;

Member 13658881

установите stock_Take.Имя Пользователя='"+DropDownList1.SelectedValue+"'"

0 Ответов