我有一個.aspx頁面,顯示來自數據庫的信息,並允許用戶添加新項目。ASP驗證殺死回發
該頁面包含一個updatepanel。在這種UpdatePanel中,有一個GridView和麪板的一些輸入要素:
<asp:Panel runat="server" ID="NewPersonPanel" DefaultButton="NewPersonButton" Visible="false">
<div id="newItemForm">
<label for="NewPersonName">Name:</label>
<asp:TextBox ID="NewPersonName" runat="server" MaxLength="50" />
<asp:RequiredFieldValidator ID="RequiredName" EnableClientScript="true" ControlToValidate="NewPersonName" ErrorMessage="Name must not be empty" ValidationGroup="NewPersonValidationGroup" runat="server" /><br />
<label for="NewPersonFirstName">First Name:</label>
<asp:TextBox ID="NewPersonFirstName" runat="server" MaxLength="50" />
<asp:RequiredFieldValidator ID="RequiredFirstName" EnableClientScript="true" ControlToValidate="NewPersonFirstName" ErrorMessage="First name must not be empty" ValidationGroup="NewPersonValidationGroup" runat="server" /><br />
<div id="newPersonControls">
<asp:LinkButton ID="NewPersonButton" ValidationGroup="NewPersonValidationGroup" runat="server" OnCommand="PersonGrid_Insert">Create</asp:LinkButton>
<asp:LinkButton ID="HideInputFormButton" runat="server" OnCommand="HideInputForm">Cancel</asp:LinkButton>
</div>
</div>
</asp:Panel>
沒有驗證元素,頁面的作品就好了。當我添加驗證時,事情變得很奇怪;當我嘗試在字段爲空時單擊「創建」按鈕時,會出現紅色驗證消息,但會在頁面上殺死所有回發。如果我填寫字段,紅色文字會消失,但我無法再使用任何按鈕。創建新人,刪除表單,排序網格,過濾網格,網格分頁......都停止工作。使用調試器它似乎不再有任何調用我的代碼,所以看起來像失敗的驗證在JavaScript中做了一些事情,導致所有其他「__doPostBack」方法失敗。
我的確找到這個主題:asp.net: Postback disabled after validation failed但是那裏沒有任何答案。
哦,我認爲ValidationGroup會自動處理它。 這是否意味着我必須弄亂並編輯導致回發的每一個鏈接按鈕?奇怪的是,只要驗證不必觸發,一切都可以正常工作;如果我填寫兩個字段,我可以創建人,瀏覽gridview,使用分頁等等。 –
nopes如果你已經使用了組,那麼你也可以通過組來完成。 –
看看這個博客,這個人給了一個整潔的例子http://veskokolev.blogspot.in/2007/11/how-to-disable-validation-group-with.html –