【问题标题】:Call an ASP.net Event Handler on Ext.Net Button Click在 Ext.Net 按钮单击上调用 ASP.net 事件处理程序
【发布时间】:2011-11-16 05:53:53
【问题描述】:

标记

<ext:Button ID="Button1" runat="server" Icon="ShapeSquare" Text="Submit" OnClick="GreetingBtn_Click" >
</ext:Button>

代码隐藏

public void GreetingBtn_Click(Object sender, EventArgs e)
{
        Response.Redirect("www.google.lk");
}

在这种情况下,我希望能够在 Ext.net 按钮单击时执行 ASP.net 事件处理程序。如何实现这个功能?

【问题讨论】:

    标签: c# asp.net ext.net


    【解决方案1】:

    您的原始代码示例存在几个问题:

    1. ButtonClick 方法中的EventArgs 参数应为DirectEventArgs
    2. &lt;ext:Button&gt; 实例上配置的OnClick 属性应重命名为OnDirectClick

    您可以使用DirectEvent 处理程序或手动调用DirectMethod 来调用服务器端方法。通过向页面发出 AJAX 请求,两者的功能相似。

    以下示例演示了DirectEventDirectMethod 选项。

    示例

    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Button1_Click(Object sender, DirectEventArgs e)
        {
            X.Msg.Notify("DirectEvent", DateTime.Now.ToLongTimeString()).Show();
        }
    
        [DirectMethod]
        public void DoSomething()
        {
            X.Msg.Notify("DirectMethod", "DoSomething was called").Show();
        }
    </script>
    
    <html>
    <head runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
    
            <ext:Button runat="server" Text="DirectEvent">
                <DirectEvents>
                    <Click OnEvent="Button1_Click" />
                </DirectEvents>
            </ext:Button>
    
            <ext:Button runat="server" Text="DirectMethod">
                <Listeners>
                    <Click Handler="Ext.net.DirectMethods.DoSomething();" />
                </Listeners>
            </ext:Button>
        </form>
    </body>
    </html>
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      来自examples

      标记

      <ext:Button 
            ID="Button1" 
            runat="server" 
            Text="Click Me" 
            OnDirectClick="ButtonClick" />
      

      后面的代码

      protected void ButtonClick(object sender, DirectEventArgs e)
      {
         Response.Redirect("www.google.lk");
      }        
      

      【讨论】:

      • onClick 和 OnDirectClick 有什么区别?
      【解决方案3】:

      在 Ext.net 按钮上添加属性 AutoPostBack="true"

      <Buttons>
          <ext:Button ID="Button1" runat="server" Icon="ShapeSquare" AutoPostBack="true" Text="Submit" OnClick="GreetingBtn_Click" >
          </ext:Button>
      </Buttons>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多