Необходимо отобразить данные в виде сетки ниже после выбора 2 выпадающих списка по их нажатию кнопки без использования базы данных в режиме реального времени

#c# #asp.net #gridview #binding #dropdownlistfor

Вопрос:

Пожалуйста, помогите отобразить данные, которые мы выбираем в раскрывающемся списке, которые мгновенно заполнят строку GridView.

<%@ Язык страницы=»C#» AutoEventWireup=»true» Кодовая ссылка=»Menu2.aspx.cs» Наследует=»MasalaStore.Menu2″ %>

 <html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- General meta information -->
    <title>Menu</title>
    <%--    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <meta name="robots" content="index, follow" />
    <meta charset="utf-8" />--%>
    <!-- // General meta information -->


    <!-- Load Javascript -->
    <script type="text/javascript" src="./js/jquery.js"></script>
    <script type="text/javascript" src="./js/jquery.query-2.1.7.js"></script>
    <script type="text/javascript" src="./js/rainbows.js"></script>
    <!-- // Load Javascipt -->

    <!-- Load stylesheets -->
    <link type="text/css" rel="stylesheet" href="css/style.css" media="screen" />
    <%--  <style>
    input[type='text']::placeholder
    {   
        text-align: center;      /* for Chrome, Firefox, Opera */
    }
    :-ms-input-placeholder
    { 
        text-align: center;      /* for IE 10-11 */
    }
    ::-webkit-input-placeholder
    { 
        text-align: center;      /* for IE Edge */
    }
</style>--%>
    <!-- // Load stylesheets -->
    <style>
        .mydropdownlist {
            color: #fff;
            font-size: 20px;
            padding: 5px 10px;
            border-radius: 5px;
            background-color: #cc2a41;
            font-weight: bold;
        }

        .mydropdownlist1 {
            color: #fff;
            font-size: 20px;
            padding: 5px 10px;
            border-radius: 5px 12px;
            background-color: #292929;
            font-weight: bold;
        }
    </style>
   
</head>

<body>

    <div id="wrapper">
        <form id="Form1" runat="server">
            <div>
                <div style="float:left;">
                    <asp:DropDownList ID="DropDownList1" runat="server" WatermarkText="Select a car" Width="300%" Height="30px" AutoPostBack="false" OnSelectedIndexChanged="ddl_onSelectIndexChanged">
                        <Items>
                            <asp:ListItem Text="Select" Value="0"></asp:ListItem>
                            <asp:ListItem Text="Haldi" Value="1"></asp:ListItem>
                            <asp:ListItem Text="Jeera" Value="2"></asp:ListItem>
                            <asp:ListItem Text="Amchoor" Value="3"></asp:ListItem>
                            <asp:ListItem Text="Ajwain" Value="4"></asp:ListItem>
                            <asp:ListItem Text="Dhaniya" Value="5"></asp:ListItem>
                            <asp:ListItem Text="Kasturi Methi" Value="6"></asp:ListItem>
                            <asp:ListItem Text="Mirch Pisi" Value="7"></asp:ListItem>
                            <asp:ListItem Text="Mirch Kuti" Value="8"></asp:ListItem>
                            <asp:ListItem Text="Kashmiri Mirch" Value="9"></asp:ListItem>
                            <asp:ListItem Text="Mirch Pili" Value="10"></asp:ListItem>
                            <asp:ListItem Text="Garam Masala" Value="11"></asp:ListItem>
                            <asp:ListItem Text="Chana Masala" Value="12"></asp:ListItem>
                            <asp:ListItem Text="Kitchen Kind" Value="13"></asp:ListItem>
                            <asp:ListItem Text="Dal Masala" Value="14"></asp:ListItem>
                            <asp:ListItem Text="Chat Masala" Value="15"></asp:ListItem>
                            <asp:ListItem Text="Sambhar Masala" Value="16"></asp:ListItem>
                            <asp:ListItem Text="Chhole Masala" Value="17"></asp:ListItem>
                            <asp:ListItem Text="Shahi Paneer Masala" Value="18"></asp:ListItem>
                            <asp:ListItem Text="Black Salt" Value="19"></asp:ListItem>
                            <asp:ListItem Text="Sendha Salt" Value="20"></asp:ListItem>
                            <asp:ListItem Text="Sonth Pisi" Value="21"></asp:ListItem>
                            <asp:ListItem Text="Tej Patta" Value="22"></asp:ListItem>
                            <asp:ListItem Text="Loung" Value="23"></asp:ListItem>
                            <asp:ListItem Text="Kali Mirch Sabut" Value="24"></asp:ListItem>
                            <asp:ListItem Text="Kali Mirch Pisi" Value="25"></asp:ListItem>
                            <asp:ListItem Text="Kalonji" Value="26"></asp:ListItem>
                            <asp:ListItem Text="Elaichi Badi" Value="27"></asp:ListItem>
                            <asp:ListItem Text="Elaichi Chhoti" Value="28"></asp:ListItem>
                            <asp:ListItem Text="Hing" Value="29"></asp:ListItem>
                            <asp:ListItem Text="Dalchini" Value="30"></asp:ListItem>
                            <asp:ListItem Text="Javitri" Value="31"></asp:ListItem>
                            <asp:ListItem Text="Jaifal" Value="32"></asp:ListItem>
                            <asp:ListItem Text="Postdana" Value="33"></asp:ListItem>
                            <asp:ListItem Text="Ajinomoto" Value="34"></asp:ListItem>
                            <asp:ListItem Text="Safed Mirch" Value="35"></asp:ListItem>
                            <asp:ListItem Text="Imli" Value="36"></asp:ListItem>
                            <asp:ListItem Text="Methi Dana" Value="37"></asp:ListItem>
                            <asp:ListItem Text="Raee" Value="38"></asp:ListItem>
                            <asp:ListItem Text="Saunf" Value="39"></asp:ListItem>
                            <asp:ListItem Text="Besan" Value="40"></asp:ListItem>
                            <asp:ListItem Text="Jeera Pisa" Value="41"></asp:ListItem>
                            <asp:ListItem Text="Pasta" Value="42"></asp:ListItem>
                            <asp:ListItem Text="Tarbuj ke Beej" Value="43"></asp:ListItem>
                            <asp:ListItem Text="Sabut Lal Mirch" Value="44"></asp:ListItem>
                            <asp:ListItem Text="Sabut Dhaniya" Value="45"></asp:ListItem>
                            <asp:ListItem Text="Moong Dal Mangodi" Value="46"></asp:ListItem>
                            <asp:ListItem Text="Sabudana" Value="47"></asp:ListItem>
                            <asp:ListItem Text="Supari" Value="48"></asp:ListItem>
                            <asp:ListItem Text="Star Flower" Value="49"></asp:ListItem>
                            <asp:ListItem Text="Til" Value="50"></asp:ListItem>
                            <asp:ListItem Text="Shahi Jeera" Value="51"></asp:ListItem>
                            <asp:ListItem Text="Anardana" Value="52"></asp:ListItem>
                        </Items>
                    </asp:DropDownList>
                </div>
                <div style="float:left; margin-left:350px;">
                    <asp:DropDownList ID="DropDownList2" runat="server" WatermarkText="Select a car" Width="300%" Height="30px" EnableViewState="true">
                        <Items>
                            <asp:ListItem Text="Select" Value="0"></asp:ListItem>
                            <asp:ListItem Text="10g" Value="1"></asp:ListItem>
                            <asp:ListItem Text="20g" Value="2"></asp:ListItem>
                            <asp:ListItem Text="50g" Value="3"></asp:ListItem>
                            <asp:ListItem Text="100g" Value="4"></asp:ListItem>
                            <asp:ListItem Text="200g" Value="5"></asp:ListItem>
                            <asp:ListItem Text="300g" Value="6"></asp:ListItem>
                            <asp:ListItem Text="400g" Value="7"></asp:ListItem>
                            <asp:ListItem Text="500g" Value="8"></asp:ListItem>
                            <asp:ListItem Text="600g" Value="9"></asp:ListItem>
                            <asp:ListItem Text="700g" Value="10"></asp:ListItem>
                            <asp:ListItem Text="800g" Value="11"></asp:ListItem>
                            <asp:ListItem Text="900g" Value="12"></asp:ListItem>
                            <asp:ListItem Text="1kg" Value="13"></asp:ListItem>
                            <asp:ListItem Text="2kg" Value="14"></asp:ListItem>
                            <asp:ListItem Text="3kg" Value="15"></asp:ListItem>
                            <asp:ListItem Text="4kg" Value="16"></asp:ListItem>
                            <asp:ListItem Text="5kg" Value="17"></asp:ListItem>
                            <asp:ListItem Text="10kg" Value="18"></asp:ListItem>
                        </Items>
                    </asp:DropDownList>
                </div>
                <div style="float:left; margin-left:300px;">
                    <asp:Button ID="Button" runat="server" Width="200%" Height="40px" Text="Submit" BackColor="BlanchedAlmond" OnClick="SubmitButton_Click">
                    </asp:Button>
                </div>
            </div>
            <div>
                 <asp:Panel ID="pnlGrid" CssClass="panel" runat="server" CellPadding="20" CellSpacing="25">
            <div style="text-align: center">

                <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="true" AllowPaging="false" AllowSorting="True" CssClass="gridview" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px"
                    OnPageIndexChanging="OnPageIndexChanging" PageSize="10" CellPadding="4" ForeColor="#333333" OnRowDataBound="GridView1_RowDataBound" GridLines="Vertical">
                    <Columns>
                        <%--<asp:BoundField ItemStyle-Width="150px" ItemStyle-Height="40px" HeaderText="Masala Name" />
                        <asp:BoundField ItemStyle-Width="100px" HeaderText="Quantity" />
                        <asp:BoundField ItemStyle-Width="100px" HeaderText="Prize" />--%>
                        <asp:TemplateField HeaderText="S.NO."><ItemTemplate><%# Container.DataItemIndex   1 %></ItemTemplate></asp:TemplateField>
                    </Columns>
                    <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                    <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                    <HeaderStyle CssClass="gridViewHeader" />
                    <RowStyle CssClass="gridViewRow" />
                    <AlternatingRowStyle CssClass="gridViewAltRow" />
                    <SelectedRowStyle CssClass="gridViewSelectedRow" />
                    <PagerStyle CssClass="gridViewPager" />
                </asp:GridView>

            </div>
        </asp:Panel>
            </div>
            <asp:Label ID="lblRowNumber" runat="server"></asp:Label>
        </form>
    </div>
</body>
</html>
 

\\\\\\\\\\\\\\\\\\\

КОД ПОЗАДИ : В этом я попробовал простой код для привязки выпадающих данных, так что первая строка появилась после отправки выбора выпадающих списков, но после этого, если я хочу еще один выбор из выпадающих списков и отправки, то он не занимает другую строку.

 using System;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MasalaStore
{
    public partial class Menu2 : System.Web.UI.Page
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["mycon"].ToString());
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            BindGrid();
        }
        private void BindGrid()
        {
            //if (DropDownList1.Text != null amp;amp; DropDownList2.Text != null)
            //{

            DataTable dt = new DataTable();
            //dt.Columns.Add("S.No.", typeof(Int32));
            dt.Columns.Add("ITEM", typeof(string));
            dt.Columns.Add("QUANTITY", typeof(string));
            dt.Columns.Add("PRIZE", typeof(string));

            DataRow dtrow = dt.NewRow();    // Create New Row and Bind Data to Columns
            dtrow["Item"] = DropDownList1.SelectedItem;
            dtrow["Quantity"] = DropDownList2.SelectedItem;
            dtrow["Prize"] = "#";
            dt.Rows.Add(dtrow);

            //if (dt.Rows.Count > 0)
            //{
                GridView2.DataSource = dt;
                GridView2.DataBind();
                DropDownList1.ClearSelection();
                DropDownList2.ClearSelection();
            //}
        }

        protected void OnPageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView2.PageIndex = e.NewPageIndex;
            this.BindGrid();
        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if ((e.Row.Cells[1].Text).ToUpper() == "OUT OF STOCK")
                {
                    // CHANGE THE COLOR OF THE CELL.
                    e.Row.Cells[1].BackColor = System.Drawing.Color.Crimson;
                    e.Row.Cells[1].ForeColor = System.Drawing.Color.WhiteSmoke;
                }
            }
        }

        protected void ddl_onSelectIndexChanged(object sender, System.EventArgs e)
        {

        }

    }
}
 

Изображение для приблизительного представления

Комментарии:

1. Итак, вы хотите, чтобы значения двух раскрывающихся списков добавлялись в сетку при выборе раскрывающихся списков? Вы хотите, чтобы это произошло, когда вы выбрали 2-е выпадающее меню? А если вы измените 2-й выпадающий список, то две капли снова будут добавлены в сетку? Итак, что здесь неясно, так это выбираете ли вы оба отбрасывания, нажимаете кнопку, чтобы добавить в сетку, или можно выбрать либо отбрасывание, а затем значения удаляются? Вы не определили, КОГДА и в какой момент выпадающий список будет добавлен в строку сетки. Так, может быть, 2-я капля? А затем, после выбора 2-го выпадающего списка, мы очистим два выпадающих списка? И пользователь не может удалить из сетки?

2. Да, я хочу выбрать оба значения выпадающего списка 1 на 1, и когда я нажму кнопку «Отправить», он просто добавит строку в виде сетки, первую строку, которую я уже отправил, но после того, как я выберу выпадающие списки во второй раз, он не добавит 2-ю строку, он меняет значения только в первой строке.

3. На самом деле сначала вы выберете товар из 1-го выпадающего списка, а затем выберете количество из 2-го выпадающего списка, а затем нажмете кнопку «Отправить», после чего оба значения будут отображаться в GridView, как вы уже можете видеть, 1-я строка отображается на фотографии в GridView. Пожалуйста, проверьте.

4. Хорошо, тогда, как уже отмечалось — см. Код ниже — он должен работать просто отлично.

Ответ №1:

Хорошо, тогда мы можем использовать этот код:

Нажатие «Отправить» добавит строку, очистит два раскрывающихся списка.

Код будет выглядеть следующим образом:

ОБРАТИТЕ ОСОБОЕ внимание на то, как мы объявили таблицу MyTable на уровне класса forms.

 private DataTable MyTable = new DataTable();

public void Page_Load(object sender, System.EventArgs e)
{
    if (IsPostBack == false)
    {
        SetUpGrid();
        ViewState["MyTable"] = MyTable;
    }
    else
        MyTable = ViewState["MyTable"];
}


public void SetUpGrid()
{
    MyTable.Columns.Add("ITEM", typeof(string));
    MyTable.Columns.Add("QUANTITY", typeof(Int32));
    MyTable.Columns.Add("PRIZE", typeof(Int32));
}

protected void Button_Click(object sender, EventArgs e)
{

    // add row to table

    DataRow OneRow = MyTable.Rows.Add;

    OneRow("ITEM") = DropDownList1.SelectedItem.Text;
    OneRow("QUANTITY") = 1;
    OneRow("PRIZE") = DropDownList2.SelectedItem.Value;

    GridView2.DataSource = MyTable;
    GridView2.DataBind();

    DropDownList1.ClearSelection();
    DropDownList2.ClearSelection();
}
}
 

итак, трюк здесь заключается в загрузке первой страницы:

Накрывай на стол.

Но мы должны СОХРАНИТЬ состояние этой таблицы. Это упрощает добавление строки. И каждый раз, когда мы добавляем новую строку, мы заново привязываем сетку, очищаем выпадающие списки.

Комментарии:

1. Да, Он Работает, Сэр.