选择从JavaScript填充的控件返回空值
作者:互联网
在我的ASP.NET应用程序中,我有一个服务器端HTML select控件.
<select id="CompanyDropDown" runat="server" style="width:330px">
</select>
然后,我的页面上就有一个链接,该链接运行一个JavaScript函数,该函数填充该控件,并选择“当前”项.我看到这是可行的,因为列表包含所有项目,并且选择了正确的项目.
但是,当页面回发以响应按钮单击时.
<asp:Button runat="server" ID="btnSaveCompany" Text="Save"
onclick="btnSaveCompany_Click" />
CompanyDropDown.Value为空,并且不包含任何项目.关于如何在回发中看到所选值的任何建议?
(注意:我尝试使用ASP.NET DropDown控件,但是当控件具有在呈现页面后添加的项目时,该操作将失败回发验证.)
解决方法:
由于使用JavaScript添加到列表中的项目不是viewstate的一部分,因此无法在服务器端检索它们.如果仅尝试获取所选值,则在每次更改下拉菜单选择时,在页面上放置服务器端隐藏字段并使用JavaScript设置其值:
jQuery脚本:
$('#CompanyDropDown').change(function() {
$('#inpSelectValue').val($(this).val());
});
隐藏的字段标记:
<input runat="server" id="inpSelectValue" clientidmode="static" type="hidden" />
隐藏字段的值将在回发时传送到服务器.引用它以检索所选项目的值.请务必在下拉菜单中添加clientidmode =“ static”,以将控件的呈现ID设置为您在ASPX页中分配的ID(即CompanyDropDown而不是parentContainer_CompanyDropDown):
<select id="CompanyDropDown" runat="server" style="width:330px"
clientidmode="static" />
另外,您可以使用AJAX告诉服务器您要添加每个动态生成的列表项或更改选择.仅当您需要维护除选定项目之外的其他项目列表时,我才会这样做.
标签:select,postback,asp-net,javascript 来源: https://codeday.me/bug/20191102/1991597.html