3
我試圖通過jQuery觸發表單提交,並有一個特定的服務器端事件觸發。從jQuery啓動服務器端事件 - __EVENTARGUMENT不存在
客戶端代碼:
$("input[name=__EVENTARGUMENT]").val("SomeArg");
form = $("body form");
form.submit();
服務器端代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
if (Request["__EVENTARGUMENT"] == "SomeArg")
{
//do some stuff
}
}
}
的問題是,在 「__EVENTARGUMENT」 隱藏輸入不存在。我發現如果我添加一個autofostback = true的ASP.net服務器控件下拉列表,EVENTARGUMENT隱藏輸入被創建。有沒有一種更清潔的方式讓ASP.net創建這些隱藏的輸入,並允許我在沒有添加控件的情況下獲取它們的值服務器端,我實際上並不需要在頁面上?
我在頁面上添加了一個'test'HiddenField控件。 EVENTARGUMENT隱藏字段不是自動生成的。由於該javascript /頁面加載代碼實際上是在用戶控件上,因此我很謹慎地使用該名稱創建一個。用戶控件可能放置在具有自動生成的EVENTARGUMENT隱藏字段的頁面或沒有自動生成該控件的頁面上。 – KClough 2009-09-23 21:17:33
爲什麼你需要這個特殊的EVENTARGUMENT? – 2009-09-23 21:24:08
啊!沒有意識到所有命名的輸入字段都可以通過Request對象訪問。謝謝! – KClough 2009-09-23 21:41:28