javascript - ASP :LinkButton created via literal control will not fire code behind

标签 javascript c# asp.net

我需要使用 LiteralControl 将 ASP:LinkBut​​ton 动态添加到网页。首先,我为控件生成一个唯一的 ID,然后按如下方式添加它:

string criteriaDeleteButtonID = "lnkDelete_" + dsCriteria.Tables[0].Rows[intCriteria]["CriteriaID"].ToString();
 pnlContent.Controls.Add(new LiteralControl("<asp:LinkButton id=\"" + criteriaDeleteButtonID + "\" OnClick=\"LinkButton_Click\" runat=\"server\" class=\"btn btn-danger\"><i class=\"glyphicon glyphicon-trash\"></i> </asp:LinkButton> </div>"));

在我的代码中,我有以下内容

    public void LinkButton_Click(object sender, EventArgs e)
{
    LinkButton tmpLinkButton = (LinkButton)sender;
    string[] idvars = tmpLinkButton.ID.Split('_');
    int criteriaID = Convert.ToInt32(idvars[1].ToString());

    clsDataAccess tmpClsData = new clsDataAccess();
    bool result = tmpClsData.DeleteCriteria(criteriaID);
    buildForm();

}

无论我做什么,我似乎都无法使代码火起来。如果我手动将相同 HTML 添加到表单中,则会触发背后的代码,但如果我使用 LiteralControl 动态添加相同的代码,则事件将不会触发。

我在 Page_Load 中动态生成表单。我在 Page_Int 中尝试过,但没有成功。浏览器控制台报告以下内容: Uncaught ReferenceError: LinkBut​​ton_Click 未定义。有什么想法吗?

最佳答案

来自 MSDN:https://msdn.microsoft.com/es-es/library/system.web.ui.literalcontrol(v=vs.110).aspx

LiteralControl(类)

表示 ASP.NET 页面中不需要需要在服务器上处理的 HTML 元素、文本和任何其他字符串。

背后的代码显然需要在服务器端进行处理。

关于javascript - ASP :LinkButton created via literal control will not fire code behind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34267913/

相关文章:

带 SSL 的 C# 异步 Tcp 服务器。如何使用 iOS NSStream 进行相互认证?

javascript - 在 div 标签中显示响应

javascript - 克 :submitButton conditional enable/disable

javascript - CSS translateY 正在扩展文档长度

c# - 试图从 bat 文件中读取但它给了我一个错误

c# - 在运行时使用 Mahapps.Metro 添加自己的 'accents'

mysql - 将 php 脚本转换为使用 mysql 中的 microsoft sql

c# - 更新 DataTable 中的行 - 为什么这不起作用?

javascript - Javascript 函数外的正确作用域

javascript - 如何将一个数组拆分为另一个配对数组