2011-05-01 61 views
0

我有兩個按鈕在頁面上。一個按鈕負責進行文本字段驗證,這些驗證用於註冊,另一個用於登錄。問題是當我按下其中一個按鈕時,它刷新頁面並顯示所有無效字段(我不希望註冊字段是當用戶按下登錄按鈕時由RequiredFieldValidator檢查)。驗證,頁面事件和ViewState

所以我做了什麼我使用的初始化事件。要防止這種情況發生......

static bool oneButtonPressed; 
    protected void Page_Init(object sender, EventArgs e) 
    { 
     if (oneButtonPressed) 
     { 
      REgisterAge.Visible = false; 
      RegisterAge2.Enabled = false; 
      RegisterAge3.Enabled = false; 
      RegisterPassword.Enabled = false; 
      RegisterPassword2.Enabled = false; 
      RegisterEmail.Enabled = false; 
      RegisterEmail2.Enabled = false;  
     } 
     else 
     { 
      EntryPasswordRequiredFieldValidator10.Enabled = false; 
      EntryNameEntryRequiredFieldValidator9.Enabled = false; 



     } 

    } 

    protected void entry_Click(object sender, EventArgs e) 
    { 
     oneButtonPressed = true; 
    } 
    protected void submitButton_Click(object sender, EventArgs e) 
    { 
     oneButtonPressed = false; 
    } 
} 

這裏的萬阿英,蔣達清是,布爾始終爲假時,頁面被調回並加載一次。 。我記得我的老師說我可以使用ViewState或靜態變量/方法來保存我的值。我在這裏錯了嗎?我必須使用ViewState嗎?

回答

0

爲什麼不爲每個字段+相關的提交按鈕分配驗證組。 不同的驗證組將確保驗證不會在無關形式上觸發。

 <asp:TextBox runat="server" ID="txtName" ValidationGroup="vRegistration"></asp:TextBox> 
    <asp:LinkButton runat="server" ID="btnSubmit" ValidationGroup="vRegistration"></asp:LinkButton> 
+0

太棒了。你的回答已經幫了我很多 – 2011-05-01 11:28:14

+0

很高興能有所幫助 – 2011-05-01 11:49:03