ASP.net html元素onclickserver无法正常工作

时间:2013-11-20 02:48:50

标签: javascript asp.net ajax

我有<ul>包含这些元素:

<li><a id="testClick" href="#" runat="server" onserverclick="btnSwitch_Click">Click This</a></li>

并且可行,该html元素可以单击服务器端的btnSwitch_Click。 但我尝试新的东西,我从js创建html代码,如下所示:

function updateDDLSheets()
{
    var ddlSheets = $('#ulSheetList');
    ddlSheets.empty();
    $.ajax({
        type: "POST",
        url: "dashboard.aspx/GetSheetItems",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "JSON",
        success: function (msg) {
            var txt = msg.d;
            var items = eval('(' + txt + ')');
            for (var ii = 0; ii < items.length; ii++) {
                ddlSheets.append('<li><a href=\"#\" runat=\"server\" onserverclick=\"btnSwitch_Click\" class=\"ddlSheet\" data-sheet=\"' + items[ii].ID + '\" data-mod=\"' + items[ii].Mods_ID + '\">' + items[ii].Name + '</a></li>');

            }
        }
    });
}

我希望这个由js代码创建的html元素可以像第一个html代码一样工作,但是onserverclick没有用。 请帮帮我为什么? 以及如何在该html元素中使用onserverclick可以工作?

1 个答案:

答案 0 :(得分:0)

您无法在客户端创建服务器端控件。如果您需要动态创建实际的服务器端控件 - 您可以在服务器端C#/ VB.NET(无论您在ASP.NET中使用什么)代码中执行此操作。但在这种情况下,您还必须在服务器上创建LI元素。

另一种可能性:请注意,ASP.NET呈现服务器端控制:

<a id="testClick" href="#" runat="server" onserverclick="btnSwitch_Click">Click This</a>

作为

<a id="testClick" href="javascript:__doPostBack('testClick','')">Click This</a>
HTML中的

您可以尝试在客户端“成功”功能中创建第二个元素。完成后调用“__doPostBack”函数。