c#中动态创建按钮时未调用Javascript函数

Javascript function not called on dynamically created button in C#

本文关键字:调用 Javascript 函数 按钮 动态 创建      更新时间:2023-09-26

我在c#中动态创建了按钮,并添加了客户端事件但是这个函数没有被调用,而是得到错误:Uncaught ReferenceError: setPropertyLocation is not defined

Javascript:

 function setPropertyLocation() {
            alert('Hello');
        }
c#:

btnMap.Attributes.Add("type", "button");
btnMap.Attributes.Add("title", "Map");
btnMap.UseSubmitBehavior = false;
btnMap.OnClientClick = "setPropertyLocation();return false";
btnMap.ID = "btnMap" + objPMPropTypestructure.PMFields[fieldcnt].SystemName;
btnMap.CssClass = "dataButton";
btnMap.Text = "G";
btnMap.Enabled = true;
tablecell.Controls.Add(btnMap);

//尝试使用这个

document.addEventListener('DOMContentLoaded', function () {
 document.getElementById ("btnMap").addEventListener ("click", setPropertyLocation, false);
});

考虑用JavaScript而不是c#创建这个按钮。我假设您使用的是更新面板。更新面板是一团乱。他们不更新DOM元素,他们只是摆脱旧的包装和创建一个全新的,什么设置为undefined所有JavaScript引用的任何元素在该包装。

嗯,有时候我们没有时间重构解决方案,所以我们必须使用现有的解决方案。

您可以尝试为元素添加onclick属性,就像您为typetitle属性所做的那样。