我有一个带有三个隐藏字段的 ASP.NET 页面。(如果我能让它工作,只有一个会做。只是表明我已经尝试了几件事。)
<input type="hidden" id="hiddenSkillId1" runat="server" />
<input type="hidden" id="hiddenSkillId2" />
<asp:HiddenField ID="hiddenSkillId3" runat="server"/>
我还有一个由 AJAXControlToolKit.AutoCompleteExtender.OnClientItemSelected 事件调用的 JavaScript 函数:
<script type="text/javascript">
function SkillPartialMatchSelected(source, eventArgs ) {
document.getElementById("ctl00_Content_hiddenSkillId1").Value = eventArgs.get_value();
document.getElementById("hiddenSkillId2").Value = eventArgs.get_value();
document.getElementById("ctl00_Content_hiddenSkillId3").Value = eventArgs.get_value();
}
</script>
使用断点并检查值,我已经确认在客户端设置了 vales。
最后,我为连接到 LinkButton OnClick 事件的页面提供了 C# 代码。
protected void AddSkillToProspect(object sender, EventArgs e)
{
string selectedKey1 = Request.Form[hiddenSkillId1.ClientID];
string selectedKey2 = Request.Form["hiddenSkillId2"];
string selectedKey3 = Request.Form[hiddenSkillId3.ClientID];
string selectedItem = SkillNameBox.Text.Trim();
...
}
所有三个 selectedKey 值均为 null,但 ASP.NET 文本编辑中的 selectedItem 值具有值。
从我读过的内容来看,其中一个应该可以工作。我错过了什么吗?我该怎么做才能将客户端的 JavaScript 函数的值返回到服务器端?