【问题标题】:Which control caused postback in apsx page when postback is triggered from JavaScript当从 JavaScript 触发回发时,哪个控件在 aspx 页面中导致回发
【发布时间】:2013-08-23 04:01:04
【问题描述】:

我有一个 aspx 页面,其中包含几个控件和一个按钮。

 <asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Style="display: none" />

我使用这个按钮通过这个按钮的点击事件触发post pack。

 //For post back
        $(document).ready(function () {
                var id = document.getElementById('<%= savebtn.ClientID %>');
                //causes post back
                id.Text = "postback";
                id.click();

        });

现在在页面加载时,我想知道是哪个控件导致回帖。

我使用下面的代码来找出导致 postpack 的控件但它返回 null。可能是因为我从 JavaScript 触发了 post pack。

private Control GetControlThatCausedPostBack(Page page)
{
    //initialize a control and set it to null
    Control ctrl = null;

    //get the event target name and find the control
    string ctrlName = Page.Request.Params.Get("__EVENTTARGET");
    if (!String.IsNullOrEmpty(ctrlName))
        ctrl = page.FindControl(ctrlName);

    //return the control to the calling method
    return ctrl;
}

请帮忙

【问题讨论】:

    标签: javascript asp.net postback


    【解决方案1】:

    调用 click 事件可以保证保存按钮将导致回发。您是否希望通过不将代码放入服务器端方法(savebtn_Click)来实现特定功能?

    更新

    如果您想为多个 select2 控件使用名称按钮单击,请尝试How to use __doPostBack()

    如果您只有一个 select2,请将您的代码放在按钮的事件中并使用以下任一方法来提取值:

    selectedValueFromRequest = Request["Select"]

    selectedValueFromControl = Select.SelectedValue

    【讨论】:

    • 我正在使用一个名为 select2 的 JQuery 插件。我使用这个插件来实现自动完成功能。从该插件中选择一些值后,我想启动 postpack 以便我可以在服务器端执行一些任务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2017-09-14
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多