2014-02-15 36 views
1

簡單地說,我想在我的引導模式下爲我的按鈕啓動ASP驗證。如果驗證啓動,我希望它們在沒有模式關閉的情況下出現。如果驗證不啓動,模式將正常關閉。如果驗證通過,從服務器關閉引導模式

我已經檢查了很多這方面的解決方案,但我不認爲我已經找到一個工作相當尚未。我想在引導模式的文本框之一上使用ASP驗證。如果我的按鈕上有data-dismiss =「modal」,即使驗證激活,模式也會關閉。

在我看來,如果我可以從服務器端關閉模式,它會工作得最好。但我不確定是否有更好的解決方案。這裏是我的頁腳客戶方代碼:

<div class="modal-footer"> 
     <asp:Button runat="server" ID="SubmitMessageBtn" Text="Send" class="btn btn-success" OnClick="SubmitMessageBtn_Click" UseSubmitBehavior="false" data-dismiss="modal" /> 
     <a href="#" class="btn" data-dismiss="modal">Close</a> 
    </div> 

,這裏是我已經嘗試在服務器端是什麼:

protected void SubmitMessageBtn_Click(object sender, EventArgs e) 
    { 
     //if validation passes 
     if (Page.IsValid) 
     { 

      ClientScript.RegisterStartupScript(GetType(), "Hide", "<script> $('#messageUserModal').modal('hide');</script>"); 
     } 
    } 

回答

0

即使這是一個較舊的線程。 RegisterStartUp將在init之前註冊腳本。嘗試使用類似

ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), "HideLoginDialog", "<script> $('#login-dialog').modal('hide');</script>", false); 

的標記應該

<div id="login-dialog" class="modal fade" tabindex="-1"> 
... 
      <div class="modal-footer text-center"> 
        <asp:UpdatePanel runat="server" ID="up_login"> 
         <ContentTemplate> 
          <asp:Button runat="server" ID="login" OnClick="login_Click" type="button" class="btn btn-primary" Text="Login"></asp:Button> 
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
         </ContentTemplate> 
        </asp:UpdatePanel> 
      </div> 
... 
</div> 

後面的代碼看起來像

protected void login_Click(object sender, EventArgs e) 
{ 
    CloseModalServerEvent(); 
} 

protected void CloseModalServerEvent() 
{ 
    ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), "HideLoginDialog", "<script> $('#login-dialog').modal('hide');</script>", false); 
}