ASP.net按钮服务器端单击事件未触发。

5

我在面板控件中有一个ASP.net按钮btnAccept,它将在modalViewextender控件的单击上显示。

btnAccept控件的onclick事件没有触发。但是如果我添加onClientClick,则会触发。但我想在服务器端使用onClick。我没有得到任何错误消息,也无法解决此问题。

非常感谢任何帮助。

以下是按钮的代码:

<cc1:ModalPopupExtender ID="mdldigiSign" runat="server" Enabled="True" 
    BackgroundCssClass="modalBackground" TargetControlID="pnlSign" 
    PopupControlID="pnlSign" CancelControlID="lblCloseSign"
    OnCancelScript="hideDigiSignDialog();" DynamicServicePath="">
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlSign" runat="server">
    <table border="0" class="SubMenu" align=center >
        <tr>
            <td align="right" valign="top" style="height: 30px">
                <label id="lblCloseSign" runat="server" title="Close">
                    <a href="#">
                        <img src="images/close_button.gif" border="0" 
                                alt="Close" />
                    </a>
                </label>
            </td>
        </tr>
        <tr><td>Respondent's Signature</td></tr>
        <tr>
            <td align=center >
                <OBJECT id=esCapture1 
                    classid=clsid:84C046A7-4370-4D91-8737-87C12F4C63C5 
                    width="150" height="80" codebase="websignax.cab" VIEWASTEXT>
                    <param name="useslibrary" value="websignAx">
                    <param name="useslibrarycodebase" value="websignax.cab">
                    <param name="useslibraryversion" 
                        value="7,1,0,1">IntegriSign Signature Control
                </OBJECT>
                <br />
                <br />
                <INPUT onclick=signNow() type=button value="StartSign" 
                    name=B1 id=B1>
                &nbsp;&nbsp;
                <input type="button" value="GetData" name="B2" 
                    onclick=getData()>
                <br />
                <asp:HiddenField ID="hdsignature" runat=server />
            </td>
        </tr>
        <tr>
            <td  align="center">
                <asp:Button ID="btnAccept" runat="server" 
                    Text="Accept Settlement"  /> 
            </td>
        </tr>
    </table>
</asp:Panel>

谢谢


我不熟悉ModalViewExtender。你是指ModalPopupExtender吗:http://www.asp.net/ajax/ajaxcontroltoolkit/samples/modalpopup/modalpopup.aspx?如果不是,你能否发布控件的链接? - Michael La Voie
你是否正在使用.Visible属性? - Lilith River
一个类似的问题:https://dev59.com/V0rSa4cB1Zd3GeqPWnhN - Nathan Taylor
4个回答

4

没有看到任何代码(这会非常有帮助),我猜测您正在动态地将btnAccept添加到页面上,但在postback时没有正确地重新创建它。

如果您没有在生命周期的Init阶段创建btnAccept,则必须手动跟踪其ViewState。如果您直到PreRender()才创建它,则已经超过了事件处理程序触发的时间点。

如果您发布一些代码,诊断将变得更加容易。


你是否在模态弹出窗口扩展器上设置了“OkButtonID”?你的代码后台是什么样子的?正如Steve所提到的,autoeventwireup是否设置为false? - womp

1

可能页面指令设置为 eventwireup="false"。 如果是这样,事件将不会触发。

正如 womp 已经说过的那样 - 看到代码会很有帮助。 您能在您的帖子中包含页面指令吗?


1
  1. 你的 <asp:Button> 控件没有分配 OnClick 处理程序。
  2. 你确实为 <input> 标签分配了 OnClick 处理程序,但那样行不通;首先,任何调用服务器端操作的标签必须设置 runat="server";其次,你应该使用 <asp:TextBox> 控件代替。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接