我需要实现讨论论坛,所以我目前正在使用asp.net转发器控件。我有一个文本框,用于为每个转发器项添加回复。目前我正在使用java脚本和样式。
首次加载时,回复面板将不可见,如果单击依赖链接按钮,则应仅显示已单击的项目文本框面板。目前它只显示转发器的第一项,甚至点击任何回复按钮?
这有什么问题,或者我如何获得我在转发器中点击的确切商品ID?
<div id="ViewDiscussion_Panel" runat="server" style="width: 100%; float: left;">
<asp:Repeater ID="rptDiscussionFolders" runat="server" OnItemCommand="rptDiscussionFolders_ItemCommand" >
<ItemTemplate>
<div id="ContentArea" style="float: left; width: 92%; min-height: 80px; height: auto; margin-left: 10px; margin-bottom: 10px;">
<div id="EditReplyItemArea" class="EditReplyItemArea" runat="server" style="margin: 15px 10px 10px 0px">
<asp:TextBox ID="txtCommentItemReply" runat="server" Style="width: 98.8%; height: 1.5em; border: 1px solid gray" title="Add a reply" data-bind="value: text1, valueUpdate: 'keyup'"></asp:TextBox>
<div style="float: right;">
<asp:Button ID="ItemReplySubmit" data-bind="enable: isFormValid" runat="server" Text="Reply" OnClick="ItemReplySubmit_Click" CommandArgument='<%# Eval("ParentFolderID")%>' BackColor="DarkBlue" ForeColor="White" />
</div>
<div style="float: right;">
<asp:Button ID="ItemReplyEdit" data-bind="enable: isFormValid" runat="server" Text="Edit" OnClick="ItemReplyEdit_Click" CommandArgument='<%# Eval("ListID")%>' BackColor="DarkBlue" ForeColor="White" />
</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
脚本...
function EnbaleReplyPanel() {
$("#ContentArea").addClass("showDivs");
return false;
}
...式
<style type="text/css">
#ContentArea .EditReplyItemArea
{
display: none;
}
#ContentArea.showDivs .EditReplyItemArea
{
display: block;
}
</style>
答案 0 :(得分:1)
基本上你需要将索引传递给函数,并根据索引值给你的div一个唯一的ID ......
所以更改将如下所示:
Div唯一名称:
<div class="CArea" id="ContentArea_<%# Container.ItemIndex + 1 %>" style="float: left;
function EnbaleReplyPanel(indx) {
$("#ContentArea_" + indx).toggleClass("showDivs");
return false;
}
我不确定你从哪里调用EnbaleReplyPanel,但你需要从那里传递相同的东西,所以它将是:
EnbaleReplyPanel(<%# Container.ItemIndex + 1 %>);
对于css类名,将是:
<style type="text/css">
.CArea .EditReplyItemArea
{
display: none;
}
.CArea .showDivs .EditReplyItemArea
{
display: block;
}
</style>