使用<li> onclick </li>调用C#代码隐藏方法

时间:2010-06-01 18:42:52

标签: c# asp.net ajax methods

我有一个列表,一个带有onclick:

<ul class="tabs"> 
    <li><a href="#tab1">Foobar_1</a></li> 
    <li onclick="doMethod"><a href="#tab2">Foobar_2</a></li> 
    <li><a href="#tab3">Foobar_3</a></li> 
    <li><a href="#tab4">Foobar_4</a></li>
</ul>

现在,我在单击选项卡(li)时要调用的方法会更新UpdatePanel,因此会显示gridview。

我知道它必须与AJAX有关,但我不知道如何继续前进......

基本上如何:如何使用AJAX调用c#方法?

2 个答案:

答案 0 :(得分:7)

<li runat="server" OnClick="DoMyOnClickCall">....</li>

然后

public void DoMyOnClickCall(object sender, EventArgs e)
{
   // sender is the li dom element you'll need to cast it though.
}

展开:(更新)

sender是一个表示HTML中<li>...</li>的对象。它被称为HtmlControl

您需要将sender投射到该类型。

var myLI = (HtmlControl)sender;
// do stuff with `myLI`

答案 1 :(得分:1)

此外,您可以通过以下方式从客户端调用该方法:

  1. 将您的方法声明为public static bool
  2. 为此方法添加属性[WebMethod]
  3. 从js
  4. 调用方法

    示例代码:

    <script language="javascript">
        function MyClientFunction() {
            var liElement = $get("liElement").value;
            PageMethods.doMethod(liElement,OnSuccess, OnFailure);
        }
    
        function OnSuccess(result) {
            if(result) {
                alert("Some error message!");
            }
        }
    
        function OnFailure(error) {
    
        }
    </script>