我想传递选定的值。我的代码返回没有选中。
在.aspx
<script>
$('#<%=serialNumberDDL.ClientID %>').chosen();
</script>
<select runat="server" id="serialNumberDDL" name="serialNumberDDL" class="form-control" data-placeholder="select serial number" multiple="true"></select>
在.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
serialNumberDDL.DataTextField = "serialNumber";
serialNumberDDL.DataValueField = "serialNumber";
List<SerialNumberJson> temp = LeaseBLL.getAllSerialNumbers();
serialNumberDDL.DataSource = temp;
serialNumberDDL.DataBind();
}
protected void btn_Click(object sender, EventArgs e)
{
string temp = serialNumberDDL.Value; //temp returns null
List<string> serialNumbers = new List<string>();
foreach (ListItem li in serialNumberDDL.Items)
{
if (li.Selected == true) //always false
{
serialNumbers.Add(li.Value);
}
}
但是当我使用javascript $('#<%=serialNumberDDL.ClientID %>').val()
写出值时,它会显示所选的值。
为什么选定的值未传递给C#?
答案 0 :(得分:0)
因为此插件适用于客户端而非服务器端。尝试使用HiddenField
Control来保存所选数据。并使用此HiddenField.Value
来检索所选数据。
<script type="text/javascript">
function CopySelectedData(){
$('#<%=hiddenField.ClientID %>').val($('#<%=serialNumberDDL.ClientID %>').val())
return true;
}
</script>
<asp:Button ID="btn_Click" runat-"server" OnClientClick="return CopySelectedData()"></asp:Button>
答案 1 :(得分:0)
你的js代码在select标签加载之前运行。尝试文档就绪事件。