为模态弹出窗口

时间:2016-09-27 21:01:33

标签: c# asp.net bootstrap-modal

我正在为工作中的项目构建注释/评论系统。 目前,单击“新建”或“回复”(两个链接,但我可以轻松地将它们更改为按钮)会显示一个引导模式,用户可以在其中输入注释/回复。 我需要能够设置评论是新的还是对其他人的回复,我想通过设置与被回复的评论的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变量;它显示为null。

我猜测,无论魔法Bootstrap在幕后做什么,都会在我的代码隐藏之前消耗这个事件。你怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

您不必进行服务器调用,如果您需要在打开模式之前设置变量,只需删除data-toggle属性并创建一个JavaScript函数来处理按钮单击,在函数内部通过设置JavaScript变量或隐藏字段值来检查这是新评论还是回复,然后以实际方式显示模态对话框