我在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();
}
答案 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”;
现在回发后你可以在服务器上找到隐藏的字段值。