我有一个LinkButton,它分配了一个Bootstrap模式:
<asp:LinkButton runat="server" ID="btnEdit" data-toggle="modal" data-target="#modalEmployee">
<asp:Image ID="Image2" runat="server" ImageUrl="~/Images/addEmp.png" /> 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
答案 0 :(得分:2)
使用以下代码:
<asp:LinkButton runat="server" ID="btnEdit">
<asp:Image ID="Image2" runat="server" ImageUrl="~/Images/Icons/add.png" /> 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" /> Add
</button>
<asp:LinkButton runat="server" ID="btnEdit" CssClass="hidden"></asp:LinkButton>
将主按钮设置为隐藏,使用假按钮,假按钮触发模态,然后自动触发主按钮。
但我无法完全理解你的代码的想法。您在单击按钮时显示模态,然后在代码隐藏中再次显示它? 此外,当您有完全回发时,除非在更新面板中包装按钮,否则模式将再次消失。