如果我们添加" data-toggle =" modal"则不会触发LinkBut​​ton Click事件。数据目标="#modalEmployee" aspx文件中linkbutton的属性

时间:2014-08-04 13:30:13

标签: asp.net twitter-bootstrap

我有一个LinkBut​​ton,它分配了一个Bootstrap模式:

<asp:LinkButton runat="server" ID="btnEdit" data-toggle="modal" data-target="#modalEmployee">
    <asp:Image ID="Image2" runat="server" ImageUrl="~/Images/addEmp.png" />&nbsp;Add
</asp:LinkButton>

模式显示正确,但未触发Codebehind Click Event:

Protected Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
        ScriptManager.RegisterClientScriptBlock(Me, Me.GetType, "Show", "<script type='text/javascript'> $('#modalEmployee').modal('show');</script>", True)
End Sub

2 个答案:

答案 0 :(得分:2)

使用以下代码:

<asp:LinkButton runat="server" ID="btnEdit">
   <asp:Image ID="Image2" runat="server" ImageUrl="~/Images/Icons/add.png" />&nbsp;Add
</asp:LinkButton>

对于后面的代码,请使用:

Protected Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
    Dim id = SelectedRowID
    If id.HasValue Then

        Page.ClientScript.RegisterStartupScript(Me.GetType, "Show", "$(document).ready(function() {$('#modalAttorney').modal('show');});", True)

        EditRecord(id.Value)

    End If
End Sub

请记住,Javascript事件仅在文档准备好后才会触发。 我希望这会有所帮助。

答案 1 :(得分:0)

您似乎正在使用Bootstrap,这是一个常见问题,您可以看到此链接以找出主要原因: https://stackoverflow.com/a/24977515/3878932

但在你的情况下,你可以使用这个技巧:

<button class="btn btn-primary" data-toggle="modal" data-target="#modalAttorney" onclick="__doPostBack('<%= btnEdit.UniqueID %>', '');">
    <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/Icons/add.png" />&nbsp;Add
</button>
<asp:LinkButton runat="server" ID="btnEdit" CssClass="hidden"></asp:LinkButton>

将主按钮设置为隐藏,使用假按钮,假按钮触发模态,然后自动触发主按钮。

但我无法完全理解你的代码的想法。您在单击按钮时显示模态,然后在代码隐藏中再次显示它? 此外,当您有完全回发时,除非在更新面板中包装按钮,否则模式将再次消失。