簡體   English   中英

如何僅在按下提交按鈕時提交ASP.NET表單,而不是通過自動回發更改下拉列表的選定索引時才提交ASP.NET表單?

[英]How to submit ASP.NET form only when the submit button is pressed and not when the selected index is changed of a dropdownlist with autopostback?

我的問題是關於ASP.NET中的自動回發:

我在autopostback為true的情況下創建了一個dropdownlist。 根據選擇的下拉列表值,它將生成一些HTML,效果很好。

但是,當我將屬性操作放入form標記時,如果我更改下拉列表的索引,它將自動提交表單。

因此,我僅在按下提交按鈕時才需要提交表單,並且在更改下拉列表時仍需要生成HTML,我該如何解決呢?

在此先感謝您的幫助。

一個好的經驗法則是僅在需要服務器端的數據時才在服務器端執行操作。 這意味着,如果您只是基於下拉列表中選擇的內容顯示不同的HTML,則可以使用HTML / JavaScript進行簡單下拉而不是使用服務器端技術。 活動部件越少越好。

但是,如果此HTML依賴於服務器端的數據,則可以使用以下技術來處理:

UpdatePanel是一種解決方案,它將異步發回到服務器,而不會干擾頁面的其余部分。 頁面的Page_Load函數將與每個異步回發一起運行,因此請確保相應地進行規划。

<asp:ScripManager runat="server" />
<asp:UpdatePanel runat="server" ChildrenAsTriggers="True" UpdateMode="Conditional">
<Content>
<asp:DropDownList runat="server" id="MyDDL" AutoPostBack="True" OnSelectedIndexChanged="MyDDL_SelectedIndexChanged" />
</Content>
</asp:UpdatePanel>

但是,我發現UpdatePanels帶來了比他們值得的更多的頭痛。 因此,我個人傾向於使用jQuery AJAX代替,從簡單的Web服務中提取HTML。 您可以找到許多有關如何在線進行操作的示例。 這是一個更改后的事件處理程序的示例 ,這是jQuery AJAX示例

您可以使用帶有按鈕的UpdatePanel作為觸發器。 您也可以按照注釋中的建議將AutoPostBack設置為false。

自從我開發ASP.NET WebForms以來已經有一段時間了...世界已經轉移到ASP.NET MVC和Node.js和Ajax。 也許使用UpdatePanel? 從我記得的情況來看,我認為WebForms通過兩種方式回傳以獲取數據,您可以通過檢查Page.IsPostBack來檢查它是否來自提交。

http://msdn.microsoft.com/zh-CN/library/system.web.ui.page.ispostback(v=vs.110).aspx

我認為這個難題的另一部分是檢查提交按鈕的值或在服務器上添加按鈕單擊處理程序以進行提交...

http://forums.asp.net/t/1795485.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM