0

我在 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();
}
4

3 回答 3

1

ASP 代码:

Request["selectedBooks"]

希望这会奏效。

于 2014-08-13T16:42:00.467 回答
0

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

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

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

于 2013-10-01T08:30:37.997 回答
0

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

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

//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
于 2013-10-01T06:58:04.070 回答