3つの非表示フィールドがあるASP.NETページがあります。(私がそれを機能させることができれば、1つだけで十分です。私がいくつかのことを試したことを示すだけです。)
<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>
ブレークポイントを使用して値を調べたところ、クライアント側で値が設定されていることを確認しました。
最後に、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();
...
}
3つのselectedKey値はすべてnullですが、ASP.NETテキスト編集のselectedItem値には値があります。
私が読んだことから、これらの1つが機能するはずです。私は何かが足りないのですか?クライアント側のJavaScript関数からサーバー側に値を戻すにはどうすればよいですか?