crerate ajax发布回servercontrol [英] crerate ajax post back on servercontrol

查看:52
本文介绍了crerate ajax发布回servercontrol的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何在servercontrol上创建ajax postback?我找到此代码在ClientControl上创建ajax postback.我想使用服务器控件Button而不是"LookUpButton"客户端控件?

How i can crerate a ajax post back on servercontrol?i find this code to create ajax Postback on ClientControl.I want use a server control Button instead of "LookUpButton" client control?

<head id="Head1"  runat="server">
  <title>Client Callback Example</title>
  <script type="text/ecmascript">
      function LookUpStock() {
          var lb = document.getElementById("ListBox1");
          try 
          {
            var product = lb.options[lb.selectedIndex].text;
            CallServer(product, "");
          }
          catch(err)
          {
            alert("Please select a product.");
          }
      }

      function ReceiveServerData(rValue) {
          document.getElementById("ResultsSpan").innerHTML = rValue;

      }
  </script>
</head>
<body>
  <form id="form1"  runat="server">
    <div>
      <asp:ListBox ID="ListBox1" Runat="server">
      <br />
      <br />
      <input type="button" value="Look Up Stock" id="LookUpButton"  önclick="LookUpStock()" />
      <br />
      <br />
      Items in stock: <span id="ResultsSpan"  runat="server">
      <br />
    </div>
  </form>
</body>







public partial class ClientCallback : System.Web.UI.Page,System.Web.UI.ICallbackEventHandler
{
    protected System.Collections.Specialized.ListDictionary catalog;
    protected String returnValue;
    protected void Page_Load(object sender, EventArgs e)
    {
     
        string cbReference =
            Page.ClientScript.GetCallbackEventReference(this,          
            "arg","ReceiveServerData","context");                      
        string callbackScript;
        callbackScript = "function CallServer(arg, context)" +
            "{ " + cbReference + ";}";
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
            "CallServer", callbackScript, true);

        catalog = new System.Collections.Specialized.ListDictionary();
        catalog.Add("monitor", 12);
        catalog.Add("laptop", 10);
        catalog.Add("keyboard", 23);
        catalog.Add("mouse", 17);

   
        ListBox1.DataSource = catalog;
        ListBox1.DataTextField = "key";
        ListBox1.DataBind();

    }

    public void RaiseCallbackEvent(String eventArgument)
    {
        if (catalog[eventArgument] == null)
        {
            returnValue = "-1";
        }
        else
        {
            returnValue = catalog[eventArgument].ToString();
        }
    }


    public String GetCallbackResult()
    {
        return returnValue;
    }
}

推荐答案

您可以像这样在服务器控件上调用JS函数,在页面的PageLoad中使用此函数

You can call JS function on server control like this,use this on PageLoad of the page

ControlID.Attributes.Add("javascript: onclick,"return LookUpStock()");


将Javascript函数"LookUpStock()"分配给Server Control的"OnClientClick"事件,如下所示.

Assign Javascript function "LookUpStock()" to "OnClientClick" event of Server Control as below.

<asp:Button id="btnTest" OnClick="btnTest_OnClick" OnClientClick="LookUpStock()"
Text="Test" runat="server" />


这篇关于crerate ajax发布回servercontrol的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆