【问题标题】:Combining asp net linkbutton onclick and onclientclick with javascript popup结合asp net linkbutton onclick和onclientclick与javascript弹出
【发布时间】:2017-08-05 21:18:59
【问题描述】:

我有这个弹出窗口,我想在编辑运算符时粘贴它。问题是我 return true 这样我就可以访问代码隐藏,但是这样做时,我的弹出窗口会立即关闭,如果我 return false:弹出窗口会粘住,但代码永远不会进入代码隐藏。我该怎么办? (另外,我的链接按钮在中继器内)

JavaScript:

function PopupEdit($this) {
    if ($($this).attr("disabled") === "disabled") {
        return false;
    }
    var module = $($this).parent().find("#modalEdit");
    module.show();
    window.onclick = function (event) {
        if (event.target === module) {
            module.hide();
        }
    };

    return true; //Right here is the problem.
}

ASPX:

<asp:LinkButton CommandName="selectBtn" ToolTip="TRNSLTEdit" ID="btnEdit" CssClass="editOperator" runat="server" CommandArgument='<%# Eval("ID")%>' OnClientClick="return PopupEdit(this)">
<asp:Image ImageUrl="Images/Icons/Edit-16x16.png" ID="EditVisitor" runat="server" />
</asp:LinkButton>

C#:

    protected void rptList_OnItemCommand(object source, RepeaterCommandEventArgs e)
    {
         var tellusUserId = TellusUser.UserID;
         var operatorId = Convert.ToInt64(e.CommandArgument);

               switch (e.CommandName)
               {
                case "selectBtn":
                var btnEdit = (LinkButton)e.Item.FindControl("btnEdit");
                btnEdit.Attributes.Add("onclick", "return false;"); //I tried this, but does not work.
                var operatorsDataSet = _administrationSystem.GetOperatorForEdit(tellusUserId, operatorId);

                if (operatorsDataSet != null)
                {
                    ViewState["OperatorsForEdit"] = operatorsDataSet;
                }
                break;
                }
      }

【问题讨论】:

    标签: javascript c# jquery asp.net boolean


    【解决方案1】:

    您的弹出窗口即将关闭,因为页面将转到服务器,因此弹出对话框已关闭。您必须从 C# 代码中链接按钮的单击事件的代码中打开弹出窗口,您必须像

    一样注册脚本
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "PopupEdit", "PopupEdit("+lnkControl.ClientID+");", true);
    

    这会起作用

    【讨论】:

    • ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "ShowProduct", "PopupEdit();", true); 不起作用。另外:你从哪里得到“ShowProduct”?
    • 那是我的代码,你必须通过你的控制客户端 ID。我有更改代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2010-11-11
    相关资源
    最近更新 更多