从后面的asp.net代码中检索HtmlSelect选项值

时间:2013-10-01 06:29:34

标签: c# asp.net

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

3 个答案:

答案 0 :(得分:1)

ASP代码:

Request["selectedBooks"]

希望这会奏效。

答案 1 :(得分: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

答案 2 :(得分:0)

我建议您在HTML选择控件的页面上保留隐藏字段

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

现在回发后你可以在服务器上找到隐藏的字段值。