在动态生成的href上调用函数后面的代码

时间:2014-02-18 19:38:50

标签: asp.net .net vb.net

我正在生成

<a href="...">

动态地在代码后面。当我点击链接时,它需要从后面的代码运行一个子,我还需要知道哪个链接实际上触发了代码隐藏功能。

这是我的代码(动态生成链接),然后以div显示。我将这个(在代码下面)作为字符串转储到div:

      <a href='#' 
           id='" + i.MemberId.ToString() + "' 
         Text='Click Me' 
onServerClick='Check_Clicked' 
        runat="server">Click Me
     </a>

这就是我需要调用的内容:

Sub Check_Clicked(sender As Object, e As EventArgs)
    Me.div_result.InnerHtml = "TEST"
End Sub

更新

好的,我在项目中添加了以下内容:

<script type="text/javascript">
    $(document).ready(function () {
        $('#inboxLink').click(function () {
            $.ajax({
                type: 'POST',
                url: 'inbox.aspx/GetSomething',
                data: '{ test1: "somevalue" }',
                ContentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    alert("Success");
                },
                error: function (data) {
                    alert("Fail");
                }
            });
        });
    });
</script>

然后

<System.Web.Services.WebMethod()> _
Public Shared Sub GetSomething()
    Me.div_result.InnerHtml = "TEST"
End Sub

但在

背后的代码中存在更多问题
  

'我'仅在实例方法中有效。

所以我不确定我接近这个问题的方式可能是错的?

1 个答案:

答案 0 :(得分:0)

使用runat="server"在客户端生成元素不会使其成为服务器控件。您最好实现基于AJAX的架构。

生成客户端锚元素(我在这里使用jquery)

 $('<a />',  {  
 text:'Click Me',  
 id:'<whatever you like>',
 click:function(){   makeCallToServerWithYourData(yourData);  }
 }).appendTo('yourTargetDivSelector');

如果您想调用服务器方法,那就是它。

如果您只想在单击锚标记时更改div的内容,就像在示例代码中一样,只需将click事件处理程序替换为您想要的任何内容。

如果有帮助,请标记为答案。

谢谢:)