Я создал страницу часто задаваемых вопросов, используя Repeater Control, вопросы и ответы связаны с временем выполнения кода, следующим за ним.Управление ретранслятором Asp.Net с помощью javascript
ASPX код
<asp:Repeater ID="RepDetails" runat="server">
<ItemTemplate>
<table id="tblRepeater">
<tr id="QARow" runat="server">
<td>
<div id="QuestionDiv" onclick="return show(this, 'AnswerDiv');">
Q:<asp:label id="lblQuestion" runat="server" Text='<%# Eval("Question")%>' CssClass="lblQueClass"></asp:label>
</div>
<div id="AnswerDiv" style="display:none;">
Ans:<asp:Label id="lblAnswerClass" runat="server" Text='<%# Eval("Answer")%>' CssClass="lblAnswerClass"></asp:Label>
</div>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
Это прекрасно работает! Дело в том, что я использовал следующий скрипт для открытия и закрытия ответа.
<script type="text/javascript">
function show(QuestionDiv, AnswerDiv) {
var arrDIVs = QuestionDiv.parentNode.getElementsByTagName("Div");
for (var i = 0; i < arrDIVs.length; i++) {
var oCurDiv = arrDIVs[i];
if (oCurDiv.id.indexOf(AnswerDiv) >= 0) {
var blnHidden = (oCurDiv.style.display == "none");
oCurDiv.style.display = (blnHidden) ? "block" : "none";
}
}
return false;
}
</script>
Он работает, как при нажатии на один вопрос. Он показывает ответ на этот вопрос.
Мой вопрос: Я хочу обновить сценарий, когда мы нажимаем на один конкретный вопрос, Он должен отображать ответ на этот вопрос, также он должен скрывать ответ другого вопроса (например, http://www.edubrainschool.com/faq.php).
var arrDIVs = QuestionDiv.parentNode.getElementsByTagName ("Div"); Вместо этого попробуйте: var arrDIVs = tblRepeater.parentNode.getElementsByTagName ("table"); – Abhijeetchindhe
thanxs @Abhijeetchindhe, но он не решает мою проблему. Я пробовал это раньше. – DotNetCoder
У вас пытались отладить? какие значения u попадают в arrDIV, когда u присваивается DIV of QuestionDiv ?? – Abhijeetchindhe