【问题标题】:Retrieve HtmlSelect option values from asp.net code behind从后面的 asp.net 代码中检索 HtmlSelect 选项值
【发布时间】:2014-08-14 01:03:58
【问题描述】:

我在 ASP.Net WebForm 应用程序中有一个 HTML 选择控件。它的选项值是从客户端的 jquery 添加的。当页面回发时,我想从服务器端读取这些值。我有以下代码,但它不起作用。从客户端添加的选项值在后面的代码中不可用。我怎样才能使这些值可用于后面的代码?

//Client code
<select title="Select one" id="selectBooks" multiple="multiple">
     <option value="1">test</option> //added in client side.
</select>

//Code behind
System.Web.UI.HtmlControls.HtmlSelect books= (System.Web.UI.HtmlControls.HtmlSelect)form1.FindControl("selectBooks");

foreach (ListItem item in books.Items)
{
   string test = item.Text.ToString();
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    ASP 代码:

    Request["selectedBooks"]
    

    希望这会奏效。

    【讨论】:

      【解决方案2】:

      您的服务器只能知道提交给它的数据。
      向选择控件添加选项只会将其添加到客户端。
      如果用户选择了该值,则将提交该值,否则您的服务器将永远不会收到该数据。
      如果您必须拥有额外的值,则必须确保它们以一种或另一种方式到达服务器。

      我想到的第一个想法是将值添加到隐藏的输入字段以及选择控件,以便当用户进行回发时,您可以从输入字段中读取值。
      像这样:

      //Client code
      <input id="selectionData" runat="server" type="hidden" value="2--addedvalue1;3--addedvalue2"/>
      <select title="Select one" id="selectBooks" multiple="multiple">
           <option value="1">test</option>
           <option value="2">addedvalue1</option> //added in client side.
           <option value="3">addedvalue2</option> //added in client side.
      </select>
      
      //Server side
      var data = selectionData.Value;
      //add code to parse the data
      

      【讨论】:

        【解决方案3】:

        这里我建议你在 HTML 选择控件所在的页面上保留一个隐藏字段

        然后在某个按钮的 clientclick 事件中 在此隐藏字段中设置 HTML 选择的所有选定值。喜欢 HdnValues.value="1,2,3,4";

        现在回发时,您可以在服务器上找到隐藏字段值。

        【讨论】:

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