我正在生成
<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
但在
背后的代码中存在更多问题'我'仅在实例方法中有效。
所以我不确定我接近这个问题的方式可能是错的?
答案 0 :(得分:0)
使用runat="server"
在客户端生成元素不会使其成为服务器控件。您最好实现基于AJAX的架构。
生成客户端锚元素(我在这里使用jquery)
$('<a />', { text:'Click Me', id:'<whatever you like>', click:function(){ makeCallToServerWithYourData(yourData); } }).appendTo('yourTargetDivSelector');
如果您想调用服务器方法,那就是它。
如果您只想在单击锚标记时更改div的内容,就像在示例代码中一样,只需将click事件处理程序替换为您想要的任何内容。
如果有帮助,请标记为答案。
谢谢:)