1

我有一个 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;
}

请帮忙

4

1 回答 1

1

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

更新

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

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

selectedValueFromRequest = Request["Select"]

或者

selectedValueFromControl = Select.SelectedValue

于 2013-08-23T04:32:22.063 回答