当前位置:编程学习 > C#/ASP.NET >>

asp.net Repeater 隐藏

昨天刚开始接触Repeater控件 还不是很熟.

现在想实现以个功能 就是以个回复的隐藏显示功能

主要代码如下:

<script type="text/javascript">
//注册时隐藏登陆界面,显示注册界面
function ShowLogon() {
var divLogin = document.getElementById("Reply");
var divLogon = document.getElementById("insert");
var divbutton = document.getElementById("Button3");
var divlabel = document.getElementById("Button4");
if (divbutton.name == divlabel.value) {
divLogin.style.display = "none";
divLogon.style.display = "block";
}
}

//注册完毕时隐藏注册界面,显示登陆界面
function ShowLogin() {
var divLogin = document.getElementById("Reply");
var divLogon = document.getElementById("insert");
var divbutton = document.getElementById("Button3");
var divlabel = document.getElementById("Button4");
if (divbutton.name == divlabel.value) {
divLogin.style.display = "block";
divLogon.style.display = "none";
}
}
</script>

<div style=" width:710px">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<div><asp:Label ID="Label1" runat="server" Text="发件人" /></div>
</HeaderTemplate>
<ItemTemplate>
<div>
<div style=" height:20px;" >
<a><%# DataBinder.Eval(Container.DataItem, "U_ID_From")%></a>
<%--<asp:Label ID="Label1" runat="server" nodename Text='<%# Eval("ID") %>' Visible="false"></asp:Label>--%>
<input id="Button4" type="button" value='<%# Eval("ID") %>' visible="false" />
</div>
<div style=" height:20px;">
<a><%# DataBinder.Eval(Container.DataItem, "Msg_Title")%></a>
</div>
<div style=" height:20px;">
<a><%# DataBinder.Eval(Container.DataItem, "Msg_Content")%></a>
</div>
<div id="insert" style=" height:30px;">
<input id="Button3" type="button" value="回复" name='<%# Eval("ID") %>' onclick="ShowLogin()"/>
</div>
<div id="Reply" style="display:none">
<div>
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Width="479px"></asp:TextBox>
</div>
<div>
<asp:Button ID="Button1" runat="server" Text="提交" /><input id="Button2" type="button" onclick="ShowLogon()"
value="取消" />
</div>
</div>
</div>
</ItemTemplate>

</asp:Repeater>
</div>

当我点击回复的时候 回复Button被隐藏 id为Reply的div被显示出来 当我点击取消的时候 id为Reply的div被隐藏 回复Button显示出来。

现在的问题在于Repeater由多条数据组成时 我以上的代码使我无论点哪条数据的回复都会将第一条数据的回复button隐藏并且第一条数据的id为Reply的div被显示出来,

我另外放置了一个button4来获取数据的自动增长列(数据库字段)可是不会跟我的js代码关联起来

追问:是啊 我的<input id="Button4" type="button" value='<%# Eval("ID") %>' visible="false" />

<input id="Button3" type="button" value="回复" name='<%# Eval("ID") %>' onclick="ShowLogin()"/>
都绑定了ID的 然后我的

var divbutton = document.getElementById("Button3");
var divlabel = document.getElementById("Button4");
if (divbutton.name == divlabel.value) {
divLogin.style.display = "none";
divLogon.style.display = "block";
}

我想判断按钮的name值跟另外的一个value是否相同 如果相同就进行隐藏

但是现在的问题是我用IE8运行了 if条件是可以通过的 但是隐藏的没有条件 所以每次都是隐藏第一条数据了 我是怎么在隐藏这里添加判断到底是哪条数据呢

答案:我先说下思路吧,下面我再贴代码。

思路如下:

只要按钮的执行方法里面可以存储数据的ID(或其它可唯一标识数据的亦可),然后图层的ID则用ID加上某个统一的字符串(某(如1_B),

然后方法调用处理时再显示或隐藏其DIV即可

上一个:ASP.NET数据库查询
下一个:asp.net编程基础

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,