我读过其他类似名字的帖子,但他们的问题都没有与我的相符,他们的解决方案也解决了我的问题。我有一个带有linkbutton字段的gridview,它显示一个模态(ish)框。因为linkbutton字段调用服务器端而不是客户端,所以无法使用JQUERY模式表单。相反,在链接按钮上单击我显示一个带有CSS的asp面板,使其看起来模态(ish)。在该面板中,我有一个asp按钮,用于通过设置panel.visible = false来退出模态。
然而,当我点击“退出”按钮时,它从不调用隐藏面板的btnExitProject_Click子过程。通常在Visual Studio的设计模式中,我可以双击一个按钮,它将在服务器端代码中显示“onClick”事件;但是,现在它需要我到page_load子。我不确定发生了什么。页面外的其他按钮,面板外工作正常,调用jquery函数的“Join Project”按钮(见图片)工作正常。
<asp:Panel ID="pnlProjectInfo" runat="server" Visible="false">
<div class="overlay"></div>
<div class ="projectPanel">
<span class="spanStyle">Project Code: </span><asp:Label ID="lblProjectCode" runat="server" Text="[proj code]" CssClass="lblStyle1"></asp:Label><br /><br />
<span class="spanStyle">Entry Date: </span><asp:Label ID="lblEntryDate" runat="server" CssClass="lblStyle1"></asp:Label><br /><br />
<span class="spanStyle">Project: </span><br />
<asp:TextBox ID="tbProject" runat="server" Width="500px" CssClass="tbStyle1"></asp:TextBox><br />
<span class="spanStyle">Organization: </span><br />
<asp:TextBox ID="tbOrgName" runat="server" Width="395px" CssClass="tbStyle1" Enabled="false"></asp:TextBox><br />
<span class="spanStyle">Project Leader: </span><br /><asp:TextBox ID="tbProjLeader" runat="server" Width="196px" CssClass="tbStyle1"></asp:TextBox><br />
<span class="spanStyle">Description: </span><br /><asp:TextBox ID="tbDescription" runat="server"
Height="50px" Width="500px" TextMode="MultiLine" CssClass="tbStyle1"></asp:TextBox><br />
<span class="spanStyle">Comment: </span><br /><asp:TextBox ID="tbComment" runat="server"
Height="50px" Width="500px" TextMode="MultiLine" CssClass="tbStyle1"></asp:TextBox><br />
<br />
<span class="spanStyle">Project Members: </span>
<br />
<asp:GridView ID="gvProjectMembers" runat="server" AutoGenerateColumns="False"
CellPadding="3"
Width="512px" Font-Names="Arial" GridLines="Vertical" BackColor="White"
BorderColor="#333333" BorderStyle="Solid" BorderWidth="1px"
CssClass="projMembersGV">
<RowStyle BackColor="#ecf1ef" ForeColor="Black" HorizontalAlign="Center"
VerticalAlign="Top" />
<Columns>
<asp:BoundField DataField="individual_first_name" HeaderText="First Name" />
<asp:BoundField DataField="individual_last_name" HeaderText="Last Name" />
<asp:BoundField DataField="percentage_effort" HeaderText="Effort" />
<asp:BoundField DataField="participation_description"
HeaderText="Participation" />
<asp:BoundField DataField="active_indicator" HeaderText="Active" />
<asp:CommandField ButtonType="Button" ShowEditButton="True" />
</Columns>
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<EmptyDataTemplate>
No members assinged to this project in the database.
</EmptyDataTemplate>
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#ecf1ef" />
</asp:GridView>
<br />
<button id="create-user" type="button">Join Project</button> <!-- displays a jquery modal -->
<asp:Button ID="btnExitProject" runat="server" Text="Close" CssClass="btnClose" CausesValidation="false" Enabled="true" />
</div>
</asp:Panel>
以下是该小组的外观:
答案 0 :(得分:1)
您似乎没有将按钮单击事件与按钮相关联。尝试更改您的代码:
<asp:Button ID="btnExitProject" runat="server" Text="Close"
CssClass="btnClose" CausesValidation="false" Enabled="true" />
到此:
<asp:Button ID="btnExitProject" runat="server" Text="Close"
CssClass="btnClose" CausesValidation="false" Enabled="true" OnClick="btnExitProject_Click" />
答案 1 :(得分:1)
您尚未连接ASP.NET按钮以调用btnExitProject_Click
<asp:Button ID="btnExitProject" runat="server" Text="Close" CssClass="btnClose" CausesValidation="false" Enabled="true" OnClick="btnExitProject_Click" />
答案 2 :(得分:0)
我决定使用JQuery而不是服务器端的onclick事件。事实证明这是一个好主意,因为响应时间要快得多。
将我的btnExitProject替换为:
<input type="button" id="close_modal" value="Close"/>
然后我在$(document).ready(function(){
中添加了一些jquery到我的页面顶部。 $("#close_modal")
.button()
.click(function() {
$("#<%=pnlProjectInfo.ClientID %>").hide();
});
这只是说当点击带有“close_modal”id的按钮时,我需要隐藏我的asp面板。因为面板是asp,代码中给出的ID不是实际ID的读取,因此我必须放"#<%=pnlProjectInfo.ClientID %>"
来引用面板。
感谢您的帮助!