【问题标题】:How can I identify, in an ASP.NET Page_Load event, what RadButton initiated a postback?如何在 ASP.NET Page_Load 事件中识别 RadButton 发起了回发?
【发布时间】:2014-01-28 21:23:03
【问题描述】:

在我的 ASP.NET 页面的 Page_Load 中,我试图确定某个按钮是否已被点击并正在尝试回发:

if (Page.IsPostBack)
{
    if (Request.Params.Get("__EVENTARGUMENT") == "doStuff")
      doSomething();
}

doStuff 是标记内的 JavaScript,但我不希望单独触发doSomething() 方法调用,我还需要能够确保用户单击的按钮是正确的。

一旦用户点击,如何从后面的代码中识别和引用按钮控件?我搜索并发现了this,但是当我尝试实现它时,返回的控件始终是null

【问题讨论】:

  • Page.Request.Params.Get("__EVENTTARGET") 得到了什么?
  • 结果值为undefined

标签: c# javascript asp.net telerik postback


【解决方案1】:

或者使用 CommandName 和命令事件。

        <telerik:RadButton ID="RadButton1" runat="server" CommandName="first" CommandArgument="one" OnCommand="CommandHandler" />
        <telerik:RadButton ID="RadButton2" runat="server" CommandName="second" CommandArgument="two" OnCommand="CommandHandler" />
        <asp:Label ID="Label1" Text="" runat="server" />
        <asp:Label ID="Label2" Text="" runat="server" />

protected void  CommandHandler(object sender, CommandEventArgs e)
{
    Label1.Text = e.CommandArgument.ToString();
    Label2.Text = e.CommandName;
}

【讨论】:

    【解决方案2】:

    您还没有真正解释您要做什么,但听起来如果您向按钮添加 OnClick 事件处理程序而不是尝试在 Page_Load 中弄清楚它,您会更轻松。只有在单击该按钮时才会执行事件处理程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2013-05-07
      • 2011-12-26
      相关资源
      最近更新 更多