我有一個帶有三個隱藏字段的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>
使用一個斷點並檢查這些值,我已經確認在客戶端設置了值。
最後,我將C#代碼放在連接到LinkButton OnClick事件的頁面後面。
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 Text Edit中的selectedItem值有一個值。
從我讀過的,其中一個應該工作。我錯過了什麼嗎?我能做些什麼來將客戶端的JavaScript函數的值返回到服務器端?
你真的需要通過Request.Form獲取值嗎?這不會工作:string selectedKey1 = hiddenSkillId1;字符串selectedKey3 = hiddenSkillId3; //但它不適用於hiddenSkillId2,因爲沒有runat = server。 – tgolisch 2012-07-26 17:50:48
如果我知道我在做什麼,哈哈,是的。我已經工作了8年的老遺產,剛剛學習網絡開發。我根據以下答案嘗試了您的建議,但沒有奏效。它運行正常,但保存在客戶端的數據在服務器端看不到。 – 2012-07-26 18:55:04