当从JavaScript触发回发时,哪个控件在aspx页面中导致回发

时间:2013-08-23 04:01:04

标签: javascript asp.net postback

我有一个aspx页面,其中包含一些控件和一个Button。

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

我使用此按钮使用此按钮的单击事件触发邮件包。

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

        });

现在在页面加载时我想知道哪个控件导致了回发。

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

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;
}

请帮忙

1 个答案:

答案 0 :(得分:1)

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

<强>更新

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

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

selectedValueFromRequest = Request["Select"]

OR

selectedValueFromControl = Select.SelectedValue