我遇到的问题是,当复选框位于引导程序弹出窗口内部时,oncheckedchanged事件不会触发。当事件不在弹出窗口内时将触发该事件。
我正在使用一个很少有字段的网格,其中一个是asp:Button,用于像这样从后面的代码中弹出引导程序弹出窗口。
if (e.CommandName == "Actions")
{
var button = e.CommandSource as Button;
UserActivityManager.ButtonClicked(User, button);
if (button != null)
{
var row = (GridViewRow)button.NamingContainer;
if (approvedUsersGrid != null)
{
var user = approvedUsersGrid.DataKeys[row.RowIndex].Values["Id"].ToString();
approvedUserHieldField.Value = user;
var approvedUser = approvedUsers.FirstOrDefault(x => x.Id == user);
if (approvedUser != null && approvedUser.Role == UserRoles.Guest)
{
addWaterMarkCheck.Enabled = false;
}
else
{
addWaterMarkCheck.Enabled = true;
}
ScriptManager.RegisterStartupScript(this, GetType(), "approvedUserPopoverScript", "$('#" + button.ClientID + "').popover({ html: true, content: $('#aprprovedUserActionButtonDiv'), container: 'body', trigger: 'focus', placement: 'left'});", true);
ScriptManager.RegisterStartupScript(this, GetType(), "approvedUserShowButtons", "$('#" + button.ClientID + "').popover('show');", true);
}
}
}
正如我们在上面的代码中看到的那样,我将所选行存储在一个隐藏字段中,该字段随后用于执行其他事件,例如所选行的按钮onclick事件。我确实在工作的弹出窗口中有其他asp:Linkbuttons。
此外,网格内的按钮会弹出一个弹出窗口,其内容位于aspx文件中。
此复选框的标记。
<td id="waterMarkTd" runat="server">
<div class="checkbox">
<label style="font-size: 1.5rem;">
<asp:CheckBox CssClass="bigger-watermark-checkbox" ID="addWaterMarkCheck" runat="server" AutoPostBack="True" OnCheckedChanged="addWaterMarkCheck_OnCheckedChanged"/>
Add Watermark
</label>
</div>
</td>
任何建议或想法都受到高度赞赏。