Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# 如何实现级联DropDownList ASP.Net控件?_C#_Asp.net - Fatal编程技术网

C# 如何实现级联DropDownList ASP.Net控件?

C# 如何实现级联DropDownList ASP.Net控件?,c#,asp.net,C#,Asp.net,我有两个DropDownList控件的代码,一个影响另一个控件中的元素。代码是: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { FillDropDownList(); } } 我已经为时事通讯DropDownList设置了AutoPostBack=True 我认为这段代码是正确的,但我不确定如何在使用asp.net和html的标记代码中应用这段代码。我怎

我有两个DropDownList控件的代码,一个影响另一个控件中的元素。代码是:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        FillDropDownList();
    }
}
我已经为时事通讯DropDownList设置了AutoPostBack=True


我认为这段代码是正确的,但我不确定如何在使用asp.net和html的标记代码中应用这段代码。我怎么把它放进去?或者有更简单的javascript解决方案吗?

以下是使用asp.net创建下拉列表的方法:

<asp:updatepanel runat="server" id="UpdatePanel" UpdateMode="Conditional">
    <contenttemplate>
        <asp:dropdownlist runat="server" id="drop_date" OnSelectedIndexChanged="drop_date_SelectedIndexChanged" AutoPostBack="true">
        </asp:dropdownlist>
        <asp:dropdownlist runat="server" id="drop_newsletter">
        </asp:dropdownlist>
    </contenttemplate>
</asp:updatepanel>
如果要使用javascript:
您需要创建一个webservice,以便可以使用ajax调用收回数据。然后使用javascript将该数据绑定到第二个下拉列表。

以下是使用asp.net创建下拉列表的方法:

<asp:updatepanel runat="server" id="UpdatePanel" UpdateMode="Conditional">
    <contenttemplate>
        <asp:dropdownlist runat="server" id="drop_date" OnSelectedIndexChanged="drop_date_SelectedIndexChanged" AutoPostBack="true">
        </asp:dropdownlist>
        <asp:dropdownlist runat="server" id="drop_newsletter">
        </asp:dropdownlist>
    </contenttemplate>
</asp:updatepanel>
如果要使用javascript:
您需要创建一个webservice,以便可以使用ajax调用收回数据。然后使用javascript将该数据绑定到第二个下拉列表。

我不确定将其应用到标记代码是什么意思,从代码的外观来看,在源代码视图中,表单上应该有两个下拉列表,当您选择第一个下拉日期时,它应该回发并调用drop\u date\u SelectedIndexChanged,前提是autopostback属性在drop\u date设置为true

这样做的一个狡猾的方法是考虑以下之一:

考虑使用类似Ajax工具包的控件。有一个完整的演练,介绍如何将其与数据库集成

如果您想保留上述代码,另一个选择就是使用


我不确定将其应用于标记代码是什么意思,您的代码现在看起来应该在源代码视图中的表单上显示两个下拉列表,并且当您选择第一个下拉日期时,它应该回发并调用drop_date_SelectedIndexChanged,前提是autopostback属性在drop_date设置为true

这样做的一个狡猾的方法是考虑以下之一:

考虑使用类似Ajax工具包的控件。有一个完整的演练,介绍如何将其与数据库集成

如果您想保留上述代码,另一个选择就是使用


您可以阅读一篇关于使用两个下拉列表进行主/细节过滤的教程


检查该链接:

您可以阅读一篇关于使用两个下拉列表进行主/细节筛选的教程


检查该链接:

你是说你从某个地方得到了这个代码隐藏文件,但你没有相应的标记?如果是这样的话,这就是您要求某人编写此代码所需的标记吗?您的问题非常不清楚。您是说您从某个地方获得了此codebehind文件,但您没有此代码所需的标记吗?如果是这样的话,这就是您要求某人编写此代码所需的标记吗?您的问题非常不清楚。没问题。你能把我的回答记为正确吗?没问题。你能把我的答案标记为正确吗
protected void drop_date_SelectedIndexChanged(object sender, EventArgs e)
{
    DataSet ds = new DataSet();
    SqlDataAdapter myda = new SqlDataAdapter("Select newsletter FROM tablename where date='"+drop_date.SelectedValue+"'",connection_Object);
    myda.Fill(ds);
    drop_newsletter.DataSource = ds;
    drop_newsletter.DataValueField = "newsletter";
    drop_newsletter.DataBind();
    drop_newsletter.Items.Insert(0, new ListItem("Select", "0"));
    //This updates the panel Asynchronously
    UpdatePanel.Update();
}