2016-09-27 48 views
1

我正在爲工作中的項目構建筆記/評論系統。 目前,單擊「新建」或「回覆」(這兩個鏈接,但我可以輕鬆地將它們更改爲按鈕)會引出一個引導模式,用戶可以在其中輸入他們的評論/回覆。 我需要能夠設置評論是新的,還是給別人的回覆,我希望通過設置一個與被回覆的評論的ID相對應的int(新評論爲0)來做。模態彈出的通過/設置變量

看來我應該可以使用OnClick事件來設置我需要的變量,但是說打開模式時,事件似乎沒有觸發。

模態:

<div class="modal" id="myModal" role="dialog"> 
    <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header">Add a comment</div> 
     <div class="modal-body"> 
     <label><small>Author: </small><%:this.Author %></label><br /> 
     <label><small>Date: </small>Date</label> 
     <asp:TextBox ID="text_M_NOTE" runat="server" TextMode="MultiLine" Height="10em" /> 
     </div> 
     <div class="modal-footer"> 
     <asp:button runat="server" class="NotePopupButton" onclick="Post_Click" Text="Save" /> 
     <asp:button runat="server" class="NotePopupButton" data-dismiss="modal" Text="Cancel" /> 
     </div> 
    </div> 
    </div> 
</div> 

對於觸發模式,我用ASP LinkBut​​ton的嘗試;

<asp:LinkButton data-toggle='modal' data-target='#myModal' runat="server" OnClick="New_Click">New comment...</asp:LinkButton> 

定期超鏈接;

<a href="#" data-toggle='modal' data-target='#myModal' runat="server" 

超鏈接與onserverlick代替的onclick ...

<a href="#" data-toggle='modal' data-target='#myModal' runat="server" onserverclick ="New_Click">New comment...</a> 

還沒有工作過。後面的代碼很簡單

protected void New_Click(object sender, EventArgs e) 
{ 
    NoteParent = "0"; // 0 Indicates a new comment 
} 

和/或

protected void Reply_Click(object sender, EventArgs e) 
{ 
    NoteParent = "12"; // Indicates a reply to comment #12 
} 

我要指出的是模態打開和保存的評論就好了,它只是將不包括NoteParent變量;它顯示爲空。

我在猜測,無論幕後的魔術Bootstrap是在我的代碼背後做事情之前消耗事件。你如何解決這個問題?

+0

NoteParent定義在哪裏? – KSib

+0

onserverlick應該onserverclick。你不應該在Post_Click中處理新的/回覆而不是New_Click? – smoore4

+0

@KSib'NoteParent'被定義在頁面的頂部。這實際上並非必要。我可以設置一個隱藏文本框,然後在保存筆記時從那裏拉出。 –

回答

0

您不必進行服務器調用,如果您需要在打開模式前設置變量,只需刪除data-toggle屬性並創建JavaScript函數來處理按鈕點擊,在函數內部檢查這是否爲新評論或通過設置JavaScript變量或隱藏字段值的回覆,然後以實用方式顯示模式對話框

+0

在這個和我對JavaScript奇怪的厭惡之間找到了一個混合解決方案;從鏈接中刪除'data-toggle'和'data-target'屬性,然後改變onClick以包含'ScriptManager.RegisterStartupScript(this,this.GetType(),「mShow」,「$('#myModal')。modal ('show');「,true);'現在有什麼好奇的是,只是設置varibale(在類中定義)不起作用。使用會話變量或全局類做了。 –

+0

它似乎使用一個隱藏的領域,而不是一個變量也適用。奇怪。 無論如何,感謝您的幫助。 –