【问题标题】:Getting HTML drop down list value from code behind从后面的代码中获取 HTML 下拉列表值
【发布时间】:2014-01-24 13:15:41
【问题描述】:

我的页面中有下拉列表和 asp 按钮,如下所示:

<select id="select1" >
   <option value="smiley.gif">Smiley</option>
   <option value="angry.gif">Angry</option>
   <option value="stickman.gif">Stickman</option>
</select>
  <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />

单击按钮后,我需要从下拉列表中获取所选值并将其保存在会话中。 但是当列表改变时,它不应该重新加载页面(只是我不需要使用runat="server")。 如何做到这一点?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您从 Request 对象中获取值。

    编辑,感谢@Péter 的评论,将 name 属性添加到 select 元素:

    <select id="select1" name="select1">
       <option value="smiley.gif">Smiley</option>
       <option value="angry.gif">Angry</option>
       <option value="stickman.gif">Stickman</option>
    </select>
    

    在代码隐藏中:

    var selectedOption = Request["select1"];
    

    不过,如果您使用的是 asp.net,我建议您使用 select 的服务器版本 (runat=server),从而可以直接从代码隐藏中的 Select 对象访问该值。

    为避免回发,您可以设置 AutoPostback=false,以下解决方案在选择下拉列表中的值时不会回发。通过使用 asp.net 控件作为下拉菜单,您可以获得类型安全等方面的好处:

    <asp:DropDownList id="select1" runat="server" AutoPostback="False">
       <asp:ListItem Value="smiley.gif" Text="Smiley"/>
       <asp:ListItem Value="angry.gif" Text="Angry"/>
       <asp:ListItem Value="stickman.gif" Text="Stickman"/>
    </asp:DropDownList>
      <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />
    

    在代码隐藏中:

    var selectedOption = select1.SelectedValue;
    

    【讨论】:

    • 这不起作用[NullReferenceException: Object reference not set to an instance of an object.]。我清楚地提到,一旦更改选择,我无需重新加载页面。
    • 还将name属性设置为select1。
    • var selectedOption = Request.QueryString["select1"];这是错误的。如何从 QueryString 中获取它?
    • 你是对的!我已经编辑了答案,感谢您的输入。
    【解决方案2】:

    您需要设置html控件的名称,然后您可以从Request Object中获取它。

    <select id="select1" name="myselect" >
       <option value="smiley.gif">Smiley</option>
       <option value="angry.gif">Angry</option>
       <option value="stickman.gif">Stickman</option>
    </select>
    

    在您的内部按钮单击事件处理程序:

    string selection = Request["myselect"];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      相关资源
      最近更新 更多