Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据第一个下拉列表中的项目选择填充两个下拉列表,无需数据库连接_C#_Asp.net_Drop Down Menu - Fatal编程技术网

C# 根据第一个下拉列表中的项目选择填充两个下拉列表,无需数据库连接

C# 根据第一个下拉列表中的项目选择填充两个下拉列表,无需数据库连接,c#,asp.net,drop-down-menu,C#,Asp.net,Drop Down Menu,我有三个下拉列表ddl1、ddl2和ddl3 现在,在选择ddl1的项目时,应该填充ddl2和类似ddl3中的相应项目 例如:-如果我在ddl1中选择“印度”,则ddl2应显示所有州,ddl3应显示印度国家的所有城市。我希望在没有任何数据库连接的情况下完成这项工作(只是从html静态地完成)。请帮忙!!!。谢谢 private SqlConnection conn = your connection string; public void Bind_ddlcountry()

我有三个下拉列表ddl1、ddl2和ddl3

现在,在选择ddl1的项目时,应该填充ddl2和类似ddl3中的相应项目

例如:-如果我在ddl1中选择“印度”,则ddl2应显示所有州,ddl3应显示印度国家的所有城市。我希望在没有任何数据库连接的情况下完成这项工作(只是从html静态地完成)。请帮忙!!!。谢谢

  private SqlConnection conn = your connection string;
    public void Bind_ddlcountry()
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand("select countryid,country from tblcountry", conn);
        SqlDataReader dr = cmd.ExecuteReader();
        ddlcountry.DataSource = dr;
        ddlcountry.Items.Clear();
        ddlcountry.Items.Add("--Please Select country--");
        ddlcountry.DataTextField = "Country";
        ddlcountry.DataValueField = "CountryId";
        ddlcountry.DataBind();
        conn.Close();
    }
//类似地绑定州和市..

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)

        {    Bind_ddlcountry(); }

    }
    protected void ddlcountry_selectedindexchanged(object sender, EventArgs e)
    {
        Bind_ddlstate();
        ddlstate.Focus();
    }
    protected void ddlstate_selectedindexchanged(object sender, EventArgs e)
    {
        Bind_ddlcity();
        ddlcity.Focus();
    }

如果要从数据库中获取国家数据,则应同时获取所有州和城市数据

然后,您应该使用dataview过滤数据。因此,只有一个数据库调用可以满足您的需要


它可能会对您有所帮助。

如果您希望避免三次访问数据库,您可以这样做

  • 将数据检索到数据集(可以编写存储过程以返回所有信息,如国家、州和城市)
  • 数据集ds=//从SP获取

  • 将国家/地区数据分配给Datatable并绑定到国家/地区下拉列表

                   DataTable country=ds.Tables[0];
                   DataTable state=ds.Tables[1];
                   DataTable city=ds.Tables[2];
                   if (countryTab != null)
                   {
                       ddlCountries.DataSource = countryTab;
                       ddlCountries.DataTextField = "country_name";
                       ddlCountries.DataValueField = "country_code";
                       ddlCountries.DataBind();
                   }
    
  • 在国家/地区下拉列表的SelectedIndexChanged事件上,写入查询以过滤状态信息并绑定到状态下拉列表

     DataRow[] r = table[1].Select("County like '%" + <selected country value> + "%'");
    
    DataRow[]r=表[1]。选择(“类似县的“%””+“%”);
    
  • 并将筛选结果集绑定到状态下拉列表。同样的方法也适用于城市下拉列表


  • 前几天我也遇到过同样的情况,应该在页面加载时填充列表中的所有数据,然后通过jquery和ajax过滤列表,并将它们动态绑定到下拉列表。我试过了,但没有成功。因此,我使用了Ajaxtoolkit的级联下拉列表。

    因为您没有链接到数据库,所以最好使用IfElse语句。 类似于

    if (dropdownlist1.selectedValue == "India")
    {
        dropdownlist2.items.clear();
        dropdownlist2.items.add("CityName");
        dropdownlist2.items.add("CityName");
        dropdownlist2.items.add("CityName");
        dropdownlist2.items.add("CityName");
        dropdownlist2.items.add("CityName");
        dropdownlist2.items.add("CityName");
        dropdownlist2.items.add("CityName");
    }
    

    对每个国家复制并通过此项,这是非常重复但有效的。

    那么您要对所有数据进行硬编码吗?你在使用UpdatePanels吗?手动意味着什么?使用集合手动完成。你在开玩笑吗?可能您想在ajax中实现它。在选择印度时,所有的州都应该立即加载到该州…我的目的是为那些不想连接数据库的人…并手动执行,就像将所有内容写入代码一样。