【问题标题】:Dynamic ASP Form Post - Without Using an Iframe动态 ASP 表单发布 - 不使用 iframe
【发布时间】:2012-06-24 18:20:58
【问题描述】:

我需要修改一个 3 级下拉菜单 <select> 直接在页面上而不是在 iframe 内运行(这就是我们目前的做法)。

此菜单的工作原理如下:

  1. 用户在第一个下拉菜单中进行选择

  2. 第二个下拉列表中的选择根据第一个下拉列表中的选择进行过滤;用户从这些选项之一中进行选择

  3. 第三个下拉列表中的选择根据第二个下拉列表中的选择进行过滤;用户从这些选项之一中进行选择;最后一个下拉列表提交表单并将用户重定向到另一个页面,同时传递所有三个下拉列表中的值。

现在,这是使用<iframe> 来完成的,该<iframe> 查询ASP.net 数据库并在每次选择后重新加载自身。

我真的需要它在不使用 iframe 的情况下工作。不知道最优雅的解决方法是什么......

【问题讨论】:

    标签: asp.net forms post iframe


    【解决方案1】:

    如果您愿意使用 ASP.NET Ajax 工具包,他们有一个 cascading dropdown control 可以满足您的要求。另一个好处是,因为它使用 Ajax,所以不必在下拉菜单中的每个选择后重新加载页面。

    【讨论】:

      【解决方案2】:

      我认为您可能需要在 DropDownList 控件上使用“onSelectIndexChanged”。类似...

      <asp:DropDownList id="ddl1" runat="server"  OnSelectedIndexChanged="ddl1_OnSelectedIndexChanged"></asp:DropDownList>
      <asp:DropDownList id="ddl2" runat="server"  OnSelectedIndexChanged="ddl2_OnSelectedIndexChanged"></asp:DropDownList>
      <asp:DropDownList id="ddl3" runat="server"  OnSelectedIndexChanged="ddl3_OnSelectedIndexChanged"></asp:DropDownList>
      
      Page_Load()
      {
          if(!IsPostBack)
          {
              ddl1.DataSource = getdata();
              ddl1.DataBind();
      }
      
      protected void ddl1_onSelectedIndexChanged(object sender, EventArgs e)
      {
          ddl2.DataSource = getData(ddl1.SelectedValue);
          ddl2.DataBind()
      }
      protected void ddl1_onSelectedIndexChanged(object sender, EventArgs e)
      {
          ddl3.DataSource = getData(ddl2.SelectedValue);
          ddl3.DataBind()
      }
      protected void ddl3_onSelectedIndexChanged(object sender, EventArgs e)
      {
          Response.Redirect("SomePage.aspx?ddl1="+ddl1.SelectedValue+"&ddl2="+ddl2.SelectedValue+"&ddl3="+ddl3.SelectedValue, true);
      }
      

      【讨论】:

      • 我确信他已经在这样做了。他的问题是部分刷新页面,而不是更改内容。
      【解决方案3】:

      您可以将它们全部放在更新面板中。

      我确信您的更改已经使页面刷新。 将它们放在更新面板中只会使面板刷新,从而导致部分页面更新。

      这使用 ajax 在内部完成这项工作。

      这里是update panel example,如果你想要的话。

      P.s.:Asp.net 创建&lt;select&gt; 的方法是DropDownList 控件。我希望您已经在使用这些,如果没有将您的选择转换为下拉列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 2011-03-01
        • 2016-07-29
        • 1970-01-01
        • 1970-01-01
        • 2015-12-05
        相关资源
        最近更新 更多