按钮单击事件未触发,但 modalpopupextender 正在工作
Posted
技术标签:
【中文标题】按钮单击事件未触发,但 modalpopupextender 正在工作【英文标题】:Button Click Event is not firing but modalpopupextender is working 【发布时间】:2012-11-25 08:37:15 【问题描述】:在我的项目中 我有
<asp:AsyncPostBackTrigger ControlID="btnAdd" EventName="Click" />
enter code here
管理员 - *如果需要
<asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="Panel1" TargetControlID="btnAdd"
BackgroundCssClass="modalBackground" runat="server">
</asp:ModalPopupExtender>
<asp:Panel ID="Panel1" align="center" CssClass="modalPopup" runat="server">
<div class="body-reg-left">
<div class="body-top-reg">
<div class="he-reg">
<b>Admin </b>- *If Neccesery</div>
</div>
<table>
<tr>
<td>
<asp:Label ID="lblCategoryID" runat="server" Text="" CssClass="lbF"></asp:Label>
</td>
<td>
<asp:Label ID="lblstt" runat="server" Text=""></asp:Label>
</td>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Brand Name" CssClass="lbF"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtbrdName" runat="server"></asp:TextBox>
</td>
</tr>
</tr>
<tr>
<td>
<asp:Button ID="BtnBrdName" runat="server" Text="Add" Width="70px" OnClick="Button1_Click" />
<asp:Button ID="btncancel" runat="server" Text="Cancel" OnClick="btncancel_Click" />
</td>
</tr>
</table>
</div>
</asp:Panel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
如果我单击 btnAdd 类别文本框中的值应该转到数据库并弹出窗口....但是在我的项目中 btnADD 按钮的单击事件没有触发并且 modalpopup 正在工作....请给出我一个解决方案..
【问题讨论】:
没有 btnAdd 是我的按钮...在弹出窗口 btnBrdNAme 内 【参考方案1】:我遇到了同样的问题,由于某种原因,当您将按钮设置为模式弹出窗口的 TargetControlID 时,它会禁用 Click 事件。
我克服这个问题的方法是在页面上放置一个不可见/虚拟标签控件并将模式的 TargetControlID 属性设置为此标签。然后在您的 btnAdd Click 事件中从数据库中获取所有必要的值并简单地调用ModalPopupExtender1.Show()
显示模态:
ASPX:
<form id="form1" runat="server">
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="AddClick" />
<asp:Label ID="dummyLabel" runat="server" />
<asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="Panel1" TargetControlID="dummyLabel"
BackgroundCssClass="modalBackground" runat="server">
</asp:ModalPopupExtender>
<asp:Panel ID="Panel1" align="center" CssClass="modalPopup" runat="server">
<div class="body-reg-left">
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Brand Name" CssClass="lbF"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtbrdName" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Button ID="BtnBrdName" runat="server" Text="Add" Width="70px" OnClick="Add" />
<asp:Button ID="btncancel" runat="server" Text="Cancel" OnClick="Cancel" />
</td>
</tr>
</table>
</div>
</asp:Panel>
</div> </div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAdd" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</form>
背后的代码:
protected void Add(object sender, EventArgs e)
//Add logic
protected void Cancel(object sender, EventArgs e)
//Cancel logic
protected void AddClick(object sender, EventArgs e)
txtbrdName.Text = "Some category"; //Populate the value as required
ModalPopupExtender1.Show();
【讨论】:
我收到“modalpopupextender 在当前上下文中不存在”错误以上是关于按钮单击事件未触发,但 modalpopupextender 正在工作的主要内容,如果未能解决你的问题,请参考以下文章