- 設計 <asp:Button> 與一個需要驗證的 Control:
<asp:Button ID="btnUpdate" runat="server" Text="更新" CommandName="Update" CausesValidation="false" OnClientClick="return confirmUpdate();" ValidationGroup="vgUpdate" /> <asp:TextBox ID="txtUpdateName" runat="server" Text="HelloWorld"></asp:TextBox> <asp:RequiredFieldValidator ID="UpdateNameRequired" runat="server" ControlToValidate="txtUpdateName" ToolTip="必須輸入名稱。" ErrorMessage="必須輸入名稱。" ValidationGroup="vgUpdate">*</asp:RequiredFieldValidator>
- 加入一個 OnClientClick 會呼叫到的 javascript:
function confirmUpdate() { if(Page_ClientValidate("vgUpdate")) { return confirm("確定要更新?"); } return true; }
- 呼叫 Page_ClientValidate("vgUpdate") 進行資料驗證, 參數就是 ValidationGroup 的值, 若不給定參數, 會呼叫第一個要驗證的 Control/ValidationGroup.
- 若 Page_ClientValidate 回傳 true, 再進行 javascript 的 confirm.
- 最後固定回傳 true. (參考下面的說明)
若 Page_ClientValidate() 驗證不過, 會自動 hold 住事件的回傳, 所以若回傳 false, 將造成下一個事件失效 (ex: 按下更新按鈕後, 再按下取消按鈕會失效, 要再多按一次取消按鈕才會生效)
呼叫 Page_ClientValidate() 後, 需固定回傳 true.
沒有留言:
張貼留言