C# 如何使用javascript访问中继器内的Div
简单地说,我在一个转发器中有一个锚,它在单击javascript函数时触发,该函数将Div的innerHTML设置为某些内容 在转发器外面试试这个确实管用! 但是,如果我尝试在repeater的项目模板中实现相同的代码,它将不起作用 注意:我想我需要先访问转发器,然后访问转发器内的锚!但我不知道怎么做 为了进一步说明: JavaScript函数:C# 如何使用javascript访问中继器内的Div,c#,javascript,asp.net,webforms,C#,Javascript,Asp.net,Webforms,简单地说,我在一个转发器中有一个锚,它在单击javascript函数时触发,该函数将Div的innerHTML设置为某些内容 在转发器外面试试这个确实管用! 但是,如果我尝试在repeater的项目模板中实现相同的代码,它将不起作用 注意:我想我需要先访问转发器,然后访问转发器内的锚!但我不知道怎么做 为了进一步说明: JavaScript函数: function show(ele, content) { var srcElement = document.getElementById(
function show(ele, content) {
var srcElement = document.getElementById(ele);
if (srcElement != null) {
srcElement.innerHTML = content;
}
}
中继器的代码:
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
Name : <%# Eval("name")%>
<DIV ID= "PersonalInfo1" runat="server"></DIV>
<A id="A1" href="#" runat="server" onclick="show('PersonalInfo1','Address : ')">More...</A>
</ItemTemplate>
</asp:Repeater>
PS:发布的代码在中继器中不起作用这是因为id是唯一的。使用getElementsByName或通过类名选择元素,例如jQuery。这是因为id是唯一的。使用getElementsByName或通过类名选择元素,例如jQuery。是,您需要迭代所有相关链接。涉及最小代码更改的解决方案是将类添加到链接,然后检查此类:
<A id="A1" href="#" runat="server" class="RepeaterLink" ...>
然后在JavaScript中:
var arrLinks = document.getElementsByTagName("a");
for (var i = 0; i < arrLinks.length; i++) {
var oLink = arrLinks[i];
if (oLink.className == "RepeaterLink") {
//found link inside repeater..
oLink.click();
}
}
var arrLinks=document.getElementsByTagName(“a”);
对于(var i=0;i
这将“自动单击”所有链接,您可以检查ID或其他内容,以模拟中继器中特定链接的单击。是的,您需要迭代所有相关链接。涉及最小代码更改的解决方案是将类添加到链接,然后检查此类:
<A id="A1" href="#" runat="server" class="RepeaterLink" ...>
然后在JavaScript中:
var arrLinks = document.getElementsByTagName("a");
for (var i = 0; i < arrLinks.length; i++) {
var oLink = arrLinks[i];
if (oLink.className == "RepeaterLink") {
//found link inside repeater..
oLink.click();
}
}
var arrLinks=document.getElementsByTagName(“a”);
对于(var i=0;i
这将“自动点击”所有链接,您可以检查ID或其他内容,以模拟中继器中特定链接的点击。确定。。。让我们重新开始 有这样的转发器代码:
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<div>
Name : <%# Eval("name")%>
<div id="Address" runat="server" style="display: none;"><%# Eval("address")%></div>
<div id="Interests" runat="server" style="display: none;"><%# Eval("interests")%></div>
<a id="A1" href="#" runat="server" onclick="return show(this, 'Address');">Show address</a>
<a id="A2" href="#" runat="server" onclick="return show(this, 'Interests');">Show interests</a>
</div>
</ItemTemplate>
</asp:Repeater>
那么这样的JavaScript代码:
function show(oLink, targetDivID) {
var arrDIVs = oLink.parentNode.getElementsByTagName("div");
for (var i = 0; i < arrDIVs.length; i++) {
var oCurDiv = arrDIVs[i];
if (oCurDiv.id.indexOf(targetDivID) >= 0) {
var blnHidden = (oCurDiv.style.display == "none");
oCurDiv.style.display = (blnHidden) ? "block" : "none";
//oLink.innerHTML = (blnHidden) ? "Less..." : "More...";
}
}
return false;
}
功能显示(oLink、targetDivID){
var arrDIVs=oLink.parentNode.getElementsByTagName(“div”);
对于(变量i=0;i=0){
变量blnHidden=(oCurDiv.style.display=“无”);
oCurDiv.style.display=(blnHidden)?“块”:“无”;
//oLink.innerHTML=(blnHidden)?“更少…”:“更多…”;
}
}
返回false;
}
这将搜索单击链接的“brother”DIV元素,并显示或隐藏它
使用纯JavaScript,代码尽可能简单,您应该能够理解每一行正在做什么-如果不了解,请随时询问。)
注意,您必须提前将个人信息放入PersonalInfo div,而不是将其传递给函数-函数将获得指向单击链接的指针。确定。。。让我们重新开始 有这样的转发器代码:
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<div>
Name : <%# Eval("name")%>
<div id="Address" runat="server" style="display: none;"><%# Eval("address")%></div>
<div id="Interests" runat="server" style="display: none;"><%# Eval("interests")%></div>
<a id="A1" href="#" runat="server" onclick="return show(this, 'Address');">Show address</a>
<a id="A2" href="#" runat="server" onclick="return show(this, 'Interests');">Show interests</a>
</div>
</ItemTemplate>
</asp:Repeater>
那么这样的JavaScript代码:
function show(oLink, targetDivID) {
var arrDIVs = oLink.parentNode.getElementsByTagName("div");
for (var i = 0; i < arrDIVs.length; i++) {
var oCurDiv = arrDIVs[i];
if (oCurDiv.id.indexOf(targetDivID) >= 0) {
var blnHidden = (oCurDiv.style.display == "none");
oCurDiv.style.display = (blnHidden) ? "block" : "none";
//oLink.innerHTML = (blnHidden) ? "Less..." : "More...";
}
}
return false;
}
功能显示(oLink、targetDivID){
var arrDIVs=oLink.parentNode.getElementsByTagName(“div”);
对于(变量i=0;i=0){
变量blnHidden=(oCurDiv.style.display=“无”);
oCurDiv.style.display=(blnHidden)?“块”:“无”;
//oLink.innerHTML=(blnHidden)?“更少…”:“更多…”;
}
}
返回false;
}
这将搜索单击链接的“brother”DIV元素,并显示或隐藏它
使用纯JavaScript,代码尽可能简单,您应该能够理解每一行正在做什么-如果不了解,请随时询问。)
注意,您必须提前将个人信息放入PersonalInfo div,而不是将其传递给函数-函数将获得指向单击链接的指针。顺便说一句,使用jQuery可以缩短JavaScript代码,使其更“浏览器安全”。这是你的电话。:)事实上,我在研究(Javascript、JQuery、Ajax)之间的区别,我知道它们各自的定义,但不知道它们的确切用途是什么?当然,如果你认为jQuery比较好,我会考虑使用jQuery,但是任何向导或指针都会有帮助(Y)!lKashef-jQuery是JavaScript库-您只需添加对jQuery代码文件的引用,就可以使用它了。想想蛋糕:你可以自己烤蛋糕(纯JavaScript),也可以在商店里买别人做的蛋糕。(jQuery)@Shadow Wizard:你需要提到的是,商店里的这块蛋糕是由技术娴熟的人制作的,所以你可以很肯定它在不同浏览器中的味道都是一样的。@难以捉摸-说得好。。蛋糕的价格约为80千字节顺便说一句,使用jQuery可以缩短JavaScript代码,使其更加“浏览器安全”。这是你的电话。:)事实上,我在研究(Javascript、JQuery、Ajax)之间的区别,我知道它们各自的定义,但不知道它们的确切用途是什么?当然,如果你认为jQuery比较好,我会考虑使用jQuery,但是任何向导或指针都会有帮助(Y)!lKashef-jQuery是JavaScript库-您只需添加对jQuery代码文件的引用,就可以使用它了。想想蛋糕:你可以自己烤蛋糕(纯JavaScript),也可以在商店里买别人做的蛋糕。(jQuery)@Shadow Wizard:你需要提到的是,商店里的这块蛋糕是由技术娴熟的人制作的,所以你可以很肯定它在不同浏览器中的味道都是一样的。@难以捉摸-说得好。。蛋糕的价格约为80千字节驻留,我想访问一个特殊的