C# 如何根据dropdownlist更改数据列表?

C# 如何根据dropdownlist更改数据列表?,c#,asp.net,database,visual-studio,webforms,C#,Asp.net,Database,Visual Studio,Webforms,我正在尝试制作一个食品网页,在那里我使用datalist来显示我数据库中的食品,我将有一个关于烹饪类型的下拉列表,例如中国菜、西方菜、马来菜、印度菜。如何对数据列表进行编码,以便当用户从下拉列表中选择马来语时,数据列表将显示数据库中的所有马来语食物,当用户选择中文时,数据列表将更改并显示数据库中的所有中餐。我在代码中使用硬编码数据。您可以将数据库表列表值替换为PageLoad中的foodlist(WebForm.aspx.cs) 这是我的WebForm1.aspx Html代码 <%@ P

我正在尝试制作一个食品网页,在那里我使用datalist来显示我数据库中的食品,我将有一个关于烹饪类型的下拉列表,例如中国菜、西方菜、马来菜、印度菜。如何对数据列表进行编码,以便当用户从下拉列表中选择马来语时,数据列表将显示数据库中的所有马来语食物,当用户选择中文时,数据列表将更改并显示数据库中的所有中餐。

我在代码中使用硬编码数据。您可以将数据库表列表值替换为PageLoad中的foodlist(WebForm.aspx.cs)

这是我的WebForm1.aspx Html代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication8.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem Value="All">All</asp:ListItem>
        <asp:ListItem Value="Chinese">Chinese</asp:ListItem>
        <asp:ListItem Value="western">western</asp:ListItem>
        <asp:ListItem Value="Malay">Malay</asp:ListItem>
        <asp:ListItem Value="Indian">Indian</asp:ListItem>



    </asp:DropDownList>
    </div>

        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>

    </form>
</body>
</html>
WebForm.aspx.cs文件

namespace WebApplication8
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        List<food> foodlist = new List<food>();
        protected void Page_Load(object sender, EventArgs e)
        {
            food fod = new food();
            fod.foodId = 1;
            fod.foodName = "testA";
            fod.foodtypes = "Chinese";

            foodlist.Add(fod);

            food fod1 = new food();
            fod1.foodId = 2;
            fod1.foodName = "testb";
            fod1.foodtypes = "Chinese";
            foodlist.Add(fod1);

            food fod3 = new food();
            fod3.foodId = 3;
            fod3.foodName = "testc";
            fod3.foodtypes = "Malay";
            foodlist.Add(fod3);
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string selectedDropdownlist = DropDownList1.Text;

            GridView1.DataSource = foodlist.Where(x => x.foodtypes == selectedDropdownlist).ToList();

            GridView1.DataBind();
        }
    }
}
命名空间WebApplication8
{
公共部分类WebForm1:System.Web.UI.Page
{
List foodlist=新列表();
受保护的无效页面加载(对象发送方、事件参数e)
{
食品fod=新食品();
fod.foodId=1;
fod.foodName=“testA”;
fod.foodtypes=“中文”;
食物列表。添加(fod);
食品fod1=新食品();
fod1.foodId=2;
fod1.foodName=“testb”;
fod1.foodtypes=“中文”;
食品清单。添加(fod1);
食品fod3=新食品();
fod3.foodId=3;
fod3.foodName=“testc”;
fod3.foodtypes=“马来语”;
添加食物列表(fod3);
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
字符串selectedDropdownlist=DropDownList1.Text;
GridView1.DataSource=foodlist.Where(x=>x.foodtypes==selectedDropdownlist.ToList();
GridView1.DataBind();
}
}
}
我的用户界面

您需要共享当前在数据列表中显示食物项目和在下拉列表中显示菜系的代码吗?并标记应用程序类型?它是Windows窗体、ASP.NET WebForms、ASP.NET MVC还是移动应用程序?简单的逻辑是从下拉列表中获取所选的烹饪id,从烹饪id的数据库中检索食物项,然后重新绑定数据列表。
namespace WebApplication8
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        List<food> foodlist = new List<food>();
        protected void Page_Load(object sender, EventArgs e)
        {
            food fod = new food();
            fod.foodId = 1;
            fod.foodName = "testA";
            fod.foodtypes = "Chinese";

            foodlist.Add(fod);

            food fod1 = new food();
            fod1.foodId = 2;
            fod1.foodName = "testb";
            fod1.foodtypes = "Chinese";
            foodlist.Add(fod1);

            food fod3 = new food();
            fod3.foodId = 3;
            fod3.foodName = "testc";
            fod3.foodtypes = "Malay";
            foodlist.Add(fod3);
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            string selectedDropdownlist = DropDownList1.Text;

            GridView1.DataSource = foodlist.Where(x => x.foodtypes == selectedDropdownlist).ToList();

            GridView1.DataBind();
        }
    }
}