读书人

C# ASP.NET编程,该如何处理

发布时间: 2013-01-06 15:44:47 作者: rapoo

C# ASP.NET编程
我在网站用加入了一个DataList用来显示数据库中的内容

在ItemTemplate中添加了一个Button,我想要的功能是单击这个button时,使当前这个Item的隐藏的Div出现(用jQuery实现的)。但是我实现的效果是当点击这个button时,所有Item的隐藏Div都出现了。。。

求助:如何获取当前Item的索引并传给Javascript


<%@ Page Title="" Language="C#" MasterPageFile="~/VOW.master" AutoEventWireup="true" CodeFile="Comunicate.aspx.cs" Inherits="Comunicate" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link href="Style/MyStyle.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script language="javascript" type="text/javascript">//这是实现是隐藏Div出现的js
$(document).ready(function () {
$(".moreButton").click(function () {
var x = $(".ResponseContent");
$(x).slideToggle("slow");
});
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1"
onselectedindexchanged="Page_Load" Width="546px">
<ItemTemplate>
<div id="PostTitle">
<asp:Label ID="PostTitleLabel" runat="server" Text='<%# Eval("PostTitle") %>' />
</div>
<div id="PostContent">
<asp:Label ID="PostImageLabel" runat="server" Text='<%# Eval("PostImage") %>' />
<asp:Label ID="PostContentLabel" runat="server"
Text='<%# Eval("PostContent") %>' />
<br />
<div id="PostMore" style="float:right" runat="server">
<input id="MoreButton" class="moreButton" type="button" value=">>More" runat="server" />//这是要点击的按钮


<asp:Label ID="ResponseLabel" runat="server" Text="评论()" Font-Size="Small"></asp:Label>
</div>
<div id="ResponseContent" class="ResponseContent" runat="server">//这是隐藏DIV
<div id="ResponseItem" runat="server">
<p>lalalallaalallalalala</p>
</div>
<div>
<input id="Text1" type="text" />
<input id="Button2" type="button" value="button" />
</div>

</div>
<br />

</div>
<br />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [PostTitle], [PostContent], [PostImage] FROM [PostTable]">
</asp:SqlDataSource>
</div>
</asp:Content>


[解决办法]
$(".MoreButton").click(function () {
$(this).parent().next().slideToggle();
});
根据元素层级,取父元素的兄弟元素即可,不需要获取DataList的Index

读书人网 >C#

热点推荐