简体   繁体   English

用JS调用ASP Net Button Click事件将不会调用服务器端事件

[英]Calling asp net button click event with JS will not call server side event

Sorry to post perhaps a silly problem here, but I'm at my wits end with it. 很抱歉在这里发布一个愚蠢的问题,但是我不知所措。 I have a hidden field with a button inside an update panel like so: 我在更新面板中有一个带有按钮的隐藏字段,如下所示:

<asp:UpdateProgress runat="server" ID="updprCompLines" AssociatedUpdatePanelID="updpanCompLines">
        <ProgressTemplate> 
            <img src="../Images/ajax-loader.gif" alt="Please wait..." /> </ProgressTemplate>
        </asp:UpdateProgress>

        <asp:UpdatePanel runat="server" ID="updpanCompLines" UpdateMode="Conditional">

            <%--<Triggers>
                <asp:AsyncPostBackTrigger ControlID="btnFillMembers" />
            </Triggers>--%>

            <ContentTemplate>
            <div>
                <asp:HiddenField ID="hdnField" runat="server" />
                <asp:Button ID="btnFillMembers" runat="server" style="display:none;" 
                    Text="DummyButton" onclick="btnFillMembers_Click"  />                   
            </div>

The update panel also contains a gridview and inside my gridview I have a link button: 更新面板还包含一个gridview,在我的gridview中,我有一个链接按钮:

 <ItemTemplate>
     <asp:LinkButton ID="lkbtBenefName" runat="server" Text='<%#Eval("COMPETENCE_CODE") %>' 
      OnClientClick='<%#Eval("COMPETENCE_LINE_ID", "return SelectedCompetence({0})") %>'/> 
 </ItemTemplate>

The call is to a JS function that is supposed to call the above button: 调用是一个应该调用上述按钮的JS函数:

<ajaxToolkit:ToolkitScriptManager runat="Server" EnablePartialRendering="true" ID="ScriptManager1" EnablePageMethods="true"/>   

<script type="text/javascript">
    function SelectedCompetence(CompetenceLineId) {

        document.getElementById('<%= hdnField.ClientID %>').value = CompetenceLineId;

        var clickButton = document.getElementById('<%= btnFillMembers.ClientID %>');
        clickButton.click();

    }
</script>

Button click event method: 按钮单击事件的方法:

protected void btnFillMembers_Click(object sender, EventArgs e)
{
    lblGvMemError.Text = "";
    lblGvMemError.ForeColor = Color.Red;

    if (hdnField.Value != null || hdnField.Value.ToString() != "")
    {
        try
        {
            int CompLineId = Convert.ToInt32(hdnField.Value);
            GetSelectedCompLineMembers(CompLineId);
        }
        catch (Exception ex)
        {
            lblGvMemError.Text = "Error: " + ex.Message;
        }
    }

    updpanCompLinesMembers.Update();
}

The problem is that while debugging, it never runs the click event and it doesn't give any error messages either. 问题是,在调试时,它从不运行click事件,也不会给出任何错误消息。 I don't understand, I have a similar form where this works; 我不明白,在这种情况下我有类似的表格; I don't get why it doesn't here... Any help please? 我不明白为什么它不在这里...请帮忙吗?

Have you confirmed that SelectedCompetence is being called via an alert or similar? 您是否已确认通过警报或类似方法正在调用SelectedCompetence? Additionally, have you made sure that the clickButton variable is being assigned to successfully? 此外,您是否已确保将clickButton变量成功分配给?

I know this isn't an answer, but don't yet have the reputation to comment, and sometimes it's the easy stuff so maybe this will help! 我知道这不是答案,但是还没有评论的名声,有时这很简单,所以也许会有所帮助! :) :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM