将JavaScript onClick添加到动态生成的asp按钮
Background我的页面根据SQL数据库的行创建对象列表。对于每个对象,动态生成一个DIV,其中包含几个项,包括一个LinkButton和一个初始隐藏的子DIV。我希望使用链接按钮切换子DIV的隐藏属性。JavaScript不是动态生成的,包含在ASPX页面中 问题我不知道如何使生成的LinkButton启动包含在ASPX页面中的JavaScript并传递正确的DIV ID 我猜我需要向按钮添加一个属性,如下所示:将JavaScript onClick添加到动态生成的asp按钮,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,Background我的页面根据SQL数据库的行创建对象列表。对于每个对象,动态生成一个DIV,其中包含几个项,包括一个LinkButton和一个初始隐藏的子DIV。我希望使用链接按钮切换子DIV的隐藏属性。JavaScript不是动态生成的,包含在ASPX页面中 问题我不知道如何使生成的LinkButton启动包含在ASPX页面中的JavaScript并传递正确的DIV ID 我猜我需要向按钮添加一个属性,如下所示: myButton.Attributes.Add(reference
myButton.Attributes.Add(reference to JS function + parameter of DIV's ID)
也许像:
myButton.Attributes.Add("onclick", "Show_Hide_Display('"<%="' +idString+ '".ClientID%>"')");
如果您使用的是jQuery,则可以使用jQuery委托方法
$(document).on("click", "div.parent", function(){
var subDivId = getSubDivByParent(this);
Show_Hide_Display(subDivId);
};
您需要根据DOM结构实现GetSubdivParent
如果不使用jQuery,则需要自己附加事件。对于每个动态生成的元素。您需要在服务器代码中手动添加以下脚本以注册事件
... your html code ...
<script>
var elem = document.getElementById('new-created-element');
elem.addEventListener("click", function(){
var subDivId = getSubDivByParent(this);
Show_Hide_Display(subDivId);
};)
</script>
。。。你的html代码。。。
var elem=document.getElementById('new-created-element');
元素addEventListener(“单击”,函数(){
var subdivide=getsubdivparent(此);
显示\隐藏\显示(细分);
};)
如果您使用的是jQuery,您可以使用jQuery委托方法
$(document).on("click", "div.parent", function(){
var subDivId = getSubDivByParent(this);
Show_Hide_Display(subDivId);
};
您需要根据DOM结构实现GetSubdivParent
如果不使用jQuery,则需要自己附加事件。对于每个动态生成的元素。您需要在服务器代码中手动添加以下脚本以注册事件
... your html code ...
<script>
var elem = document.getElementById('new-created-element');
elem.addEventListener("click", function(){
var subDivId = getSubDivByParent(this);
Show_Hide_Display(subDivId);
};)
</script>
。。。你的html代码。。。
var elem=document.getElementById('new-created-element');
元素addEventListener(“单击”,函数(){
var subdivide=getsubdivparent(此);
显示\隐藏\显示(细分);
};)
使用以下语法
myButton.Attributes.Add("onclick", "Show_Hide_Display(this.id);");
上述语法允许调用id作为参数的函数
建议:
尝试编写一个不依赖于生成的控件ID的公共函数
如果这对您的需求没有帮助,请发布您的代码,这可能会给我一个更好的想法。使用以下语法
myButton.Attributes.Add("onclick", "Show_Hide_Display(this.id);");
上述语法允许调用id作为参数的函数
建议:
尝试编写一个不依赖于生成的控件ID的公共函数
如果这对您的需求没有帮助,请发布您的代码,这可能会给我一个更好的想法。我没有使用JQuery,我有一个JavaScript函数,它接收DIV的ID,然后通过CSS显示/隐藏它。此函数在其他地方使用,效果良好。我需要能够在动态生成的按钮上调用它,但不知道语法。因此,您需要在服务器中附加脚本标记。该脚本用于注册新创建的元素。例如“html代码注册事件”不,脚本已经在页面上并且工作正常。我需要我的新按钮来调用函数。是的。所以您需要做的是:只需附加DOM事件。所以,您需要一个脚本片段来注册DOM单击事件。比如“html代码注册事件”,我想我实际上需要的是这样的东西:myButton.Attributes.Add(“onclick”、“Show\u Hide\u Display”(“)”);我没有使用JQuery,我有一个JavaScript函数,它接收DIV的ID,然后通过CSS显示/隐藏它。此函数在其他地方使用,效果良好。我需要能够在动态生成的按钮上调用它,但不知道语法。因此,您需要在服务器中附加脚本标记。该脚本用于注册新创建的元素。例如“html代码注册事件”不,脚本已经在页面上并且工作正常。我需要我的新按钮来调用函数。是的。所以您需要做的是:只需附加DOM事件。所以,您需要一个脚本片段来注册DOM单击事件。比如“html代码注册事件”,我想我实际上需要的是这样的东西:myButton.Attributes.Add(“onclick”、“Show\u Hide\u Display”(“)”);我可以使div隐藏/可见。我需要我新创建的按钮来调用执行此操作的JavaScript函数。我可以使DIVs隐藏/可见。我需要我新创建的按钮来调用执行此操作的JavaScript函数。这实际上是我最后采用的方法。但是,对于将来有类似问题的人来说,你的答案是正确的。谢谢。这实际上是我最后走的路线。但是,对于将来有类似问题的人来说,你的答案是正确的。谢谢