asp.net中listview下嵌套gridview

最近在上软件工程实践课程,想做一个类似于QQ空间或者朋友圈一样的效果。即显示所有好友发送的动态以及动态下回复的信息。

自己YY了一种方法,一开始以为不能达到效果,研究了2个小时终于实现了,感觉效果还是很棒棒的,拿来分享一下。神犇请绕道吧~~

listview可以自己排版布局,我们用listview来显示动态发送者的头像,昵称以及发送时间。

那回复怎么办呢?

gridview的布局与回复较像,效果也比较好。那就用gridview来做回复部分好了。

主要思路就是上图,黑色的由listview显示,红色的回复部分由gridview显示。listview会获取动态信息的ID:<%# Eval("DynamicID") %>,根据这个ID,在gridview中设置好属性,去寻找哪些评论是评论这条动态信息ID的,select出来即可。

效果大约是这样的:

嵌套布局的代码大致是这样子的:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true"
    CodeBehind="Dynamic.aspx.cs" Inherits="Platform.学生.Dynamic"   Title="大学生学习交友平台 - 动态消息" MaintainScrollPositionOnPostback="true"  %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<style>
body{font-family:"微软雅黑"}
</style>

    <style type="text/css">
        .style3
        {
            width: 100%;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <table class="style3">
        <tr>
            <td>
                <asp:ListView ID="ListView1" runat="server" DataKeyNames="StudentID,DynamicID"
                    DataSourceID="SqlDataSource1" onitemcommand="ListView1_ItemCommand">
                    <ItemTemplate>
                        <table class="style3">
                            <tr>
                                <td rowspan="2" width="50">
                                    <img alt="" src="<%# Eval("StudentPhoto") %>" height="100" width="100" />
                                </td>
                                <td>
                                    <asp:Label ID="Label1" runat="server" Text=‘<%# Eval("StudentName") %>‘></asp:Label>
                                </td>
                                <td>
                                    <asp:Label Visible="false" ID="Label0" runat="server" Text=‘<%# Eval("DynamicID") %>‘></asp:Label>
                                </td>

                            </tr>
                            <tr>
                                <td>
                                    <asp:Label ID="Label2" runat="server" Text=‘<%# Eval("DynamicDate") %>‘></asp:Label>
                                </td>
                                <br>
                            </tr>

                            <tr>
                                <td colspan="2">
                                    <asp:Label ID="Label3" runat="server" Text=‘<%# Eval("DynamicText") %>‘></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <img alt="" src="<%# Eval("DynamicPhoto") %>" />
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <asp:Label ID="Label4" runat="server" Text="有"></asp:Label>
                                    <asp:Label ID="Label5" runat="server" Text=‘<%# Eval("DynamicZan") %>‘></asp:Label>
                                    <asp:Label ID="Label6" runat="server" Text="人觉得很赞!"></asp:Label>
                                    <asp:Button ID="ButtonZan" runat="server" Text="赞!"  CommandArgument="<%#Container.DataItemIndex %>" CommandName="ButtonZan"/>
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="CommentID,StudentID1"
                                        DataSourceID="SqlDataSource2" CellPadding="4" ForeColor="#333333" GridLines="None"
                                        Width="600px" ShowHeader="false">
                                        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                                        <Columns>
                                            <asp:BoundField DataField="StudentName" HeaderText="StudentName" SortExpression="StudentName" />
                                            <asp:BoundField DataField="CommentText" HeaderText="CommentText" SortExpression="CommentText" />
                                        </Columns>
                                        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                                        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                                        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                                        <EditRowStyle BackColor="#999999" />
                                        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                                    </asp:GridView>
                                    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:DataBase %>"
                                        SelectCommand="SELECT *
FROM Comment as C JOIN Student as S ON S.StudentID = C.StudentID
WHERE ([DynamicID] = @DynamicID)">
                                        <SelectParameters>
                                            <asp:ControlParameter ControlID="Label0" Name="DynamicID" PropertyName="Text" Type="String" />
                                        </SelectParameters>
                                    </asp:SqlDataSource>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    <asp:TextBox ID="TextBoxReply" runat="server" ></asp:TextBox>
                                    <asp:Button ID="ButtonReply" runat="server" Text="留言"  CommandArgument="<%#Container.DataItemIndex %>" CommandName="ButtonReply"/>
                                </td>
                                <td>
                                    &nbsp;
                                </td>
                            </tr>
                        </table>
                        <br />
                        <br />
                        </span>
                    </ItemTemplate>
                    <EmptyDataTemplate>
                        <span>未返回数据。</span>
                    </EmptyDataTemplate>
                    <InsertItemTemplate>
                        <span style="">StudentID:
                            <asp:TextBox ID="StudentIDTextBox" runat="server" Text=‘<%# Bind("StudentID") %>‘ />
                            <br />
                            StudentPwd:
                            <asp:TextBox ID="StudentPwdTextBox" runat="server" Text=‘<%# Bind("StudentPwd") %>‘ />
                            <br />
                            StudentName:
                            <asp:TextBox ID="StudentNameTextBox" runat="server" Text=‘<%# Bind("StudentName") %>‘ />
                            <br />
                            StudentSex:
                            <asp:TextBox ID="StudentSexTextBox" runat="server" Text=‘<%# Bind("StudentSex") %>‘ />
                            <br />
                            StudentAge:
                            <asp:TextBox ID="StudentAgeTextBox" runat="server" Text=‘<%# Bind("StudentAge") %>‘ />
                            <br />
                            StudentBirthday:
                            <asp:TextBox ID="StudentBirthdayTextBox" runat="server" Text=‘<%# Bind("StudentBirthday") %>‘ />
                            <br />
                            StudentConstellation:
                            <asp:TextBox ID="StudentConstellationTextBox" runat="server" Text=‘<%# Bind("StudentConstellation") %>‘ />
                            <br />
                            StudentCollege:
                            <asp:TextBox ID="StudentCollegeTextBox" runat="server" Text=‘<%# Bind("StudentCollege") %>‘ />
                            <br />
                            StudentMajor:
                            <asp:TextBox ID="StudentMajorTextBox" runat="server" Text=‘<%# Bind("StudentMajor") %>‘ />
                            <br />
                            StudentHobby:
                            <asp:TextBox ID="StudentHobbyTextBox" runat="server" Text=‘<%# Bind("StudentHobby") %>‘ />
                            <br />
                            StudentEmail:
                            <asp:TextBox ID="StudentEmailTextBox" runat="server" Text=‘<%# Bind("StudentEmail") %>‘ />
                            <br />
                            StudentTEL:
                            <asp:TextBox ID="StudentTELTextBox" runat="server" Text=‘<%# Bind("StudentTEL") %>‘ />
                            <br />
                            StudentAddress:
                            <asp:TextBox ID="StudentAddressTextBox" runat="server" Text=‘<%# Bind("StudentAddress") %>‘ />
                            <br />
                            StudentSingle:
                            <asp:TextBox ID="StudentSingleTextBox" runat="server" Text=‘<%# Bind("StudentSingle") %>‘ />
                            <br />
                            StudentPhoto:
                            <asp:TextBox ID="StudentPhotoTextBox" runat="server" Text=‘<%# Bind("StudentPhoto") %>‘ />
                            <br />
                            StudentIntroduction:
                            <asp:TextBox ID="StudentIntroductionTextBox" runat="server" Text=‘<%# Bind("StudentIntroduction") %>‘ />
                            <br />
                            DynamicID:
                            <asp:TextBox ID="DynamicIDTextBox" runat="server" Text=‘<%# Bind("DynamicID") %>‘ />
                            <br />
                            StudentID1:
                            <asp:TextBox ID="StudentID1TextBox" runat="server" Text=‘<%# Bind("StudentID1") %>‘ />
                            <br />
                            DynamicText:
                            <asp:TextBox ID="DynamicTextTextBox" runat="server" Text=‘<%# Bind("DynamicText") %>‘ />
                            <br />
                            DynamicDate:
                            <asp:TextBox ID="DynamicDateTextBox" runat="server" Text=‘<%# Bind("DynamicDate") %>‘ />
                            <br />
                            DynamicPhoto:
                            <asp:TextBox ID="DynamicPhotoTextBox" runat="server" Text=‘<%# Bind("DynamicPhoto") %>‘ />
                            <br />
                            DynamicZan:
                            <asp:TextBox ID="DynamicZanTextBox" runat="server" Text=‘<%# Bind("DynamicZan") %>‘ />
                            <br />
                            <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" />
                            <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" />
                            <br />
                            <br />
                        </span>
                    </InsertItemTemplate>
                    <LayoutTemplate>
                        <div id="itemPlaceholderContainer" runat="server" style="">
                            <span id="itemPlaceholder" runat="server" />
                        </div>
                        <div style="">
                            <asp:DataPager ID="DataPager1" runat="server">
                                <Fields>
                                    <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False"
                                        ShowPreviousPageButton="False" />
                                    <asp:NumericPagerField />
                                    <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False"
                                        ShowPreviousPageButton="False" />
                                </Fields>
                            </asp:DataPager>
                        </div>
                    </LayoutTemplate>
                    <EditItemTemplate>
                        <span style="">StudentID:
                            <asp:Label ID="StudentIDLabel1" runat="server" Text=‘<%# Eval("StudentID") %>‘ />
                            <br />
                            StudentPwd:
                            <asp:TextBox ID="StudentPwdTextBox" runat="server" Text=‘<%# Bind("StudentPwd") %>‘ />
                            <br />
                            StudentName:
                            <asp:TextBox ID="StudentNameTextBox" runat="server" Text=‘<%# Bind("StudentName") %>‘ />
                            <br />
                            StudentSex:
                            <asp:TextBox ID="StudentSexTextBox" runat="server" Text=‘<%# Bind("StudentSex") %>‘ />
                            <br />
                            StudentAge:
                            <asp:TextBox ID="StudentAgeTextBox" runat="server" Text=‘<%# Bind("StudentAge") %>‘ />
                            <br />
                            StudentBirthday:
                            <asp:TextBox ID="StudentBirthdayTextBox" runat="server" Text=‘<%# Bind("StudentBirthday") %>‘ />
                            <br />
                            StudentConstellation:
                            <asp:TextBox ID="StudentConstellationTextBox" runat="server" Text=‘<%# Bind("StudentConstellation") %>‘ />
                            <br />
                            StudentCollege:
                            <asp:TextBox ID="StudentCollegeTextBox" runat="server" Text=‘<%# Bind("StudentCollege") %>‘ />
                            <br />
                            StudentMajor:
                            <asp:TextBox ID="StudentMajorTextBox" runat="server" Text=‘<%# Bind("StudentMajor") %>‘ />
                            <br />
                            StudentHobby:
                            <asp:TextBox ID="StudentHobbyTextBox" runat="server" Text=‘<%# Bind("StudentHobby") %>‘ />
                            <br />
                            StudentEmail:
                            <asp:TextBox ID="StudentEmailTextBox" runat="server" Text=‘<%# Bind("StudentEmail") %>‘ />
                            <br />
                            StudentTEL:
                            <asp:TextBox ID="StudentTELTextBox" runat="server" Text=‘<%# Bind("StudentTEL") %>‘ />
                            <br />
                            StudentAddress:
                            <asp:TextBox ID="StudentAddressTextBox" runat="server" Text=‘<%# Bind("StudentAddress") %>‘ />
                            <br />
                            StudentSingle:
                            <asp:TextBox ID="StudentSingleTextBox" runat="server" Text=‘<%# Bind("StudentSingle") %>‘ />
                            <br />
                            StudentPhoto:
                            <asp:TextBox ID="StudentPhotoTextBox" runat="server" Text=‘<%# Bind("StudentPhoto") %>‘ />
                            <br />
                            StudentIntroduction:
                            <asp:TextBox ID="StudentIntroductionTextBox" runat="server" Text=‘<%# Bind("StudentIntroduction") %>‘ />
                            <br />
                            DynamicID:
                            <asp:Label ID="DynamicIDLabel1" runat="server" Text=‘<%# Eval("DynamicID") %>‘ />
                            <br />
                            StudentID1:
                            <asp:TextBox ID="StudentID1TextBox" runat="server" Text=‘<%# Bind("StudentID1") %>‘ />
                            <br />
                            DynamicText:
                            <asp:TextBox ID="DynamicTextTextBox" runat="server" Text=‘<%# Bind("DynamicText") %>‘ />
                            <br />
                            DynamicDate:
                            <asp:TextBox ID="DynamicDateTextBox" runat="server" Text=‘<%# Bind("DynamicDate") %>‘ />
                            <br />
                            DynamicPhoto:
                            <asp:TextBox ID="DynamicPhotoTextBox" runat="server" Text=‘<%# Bind("DynamicPhoto") %>‘ />
                            <br />
                            DynamicZan:
                            <asp:TextBox ID="DynamicZanTextBox" runat="server" Text=‘<%# Bind("DynamicZan") %>‘ />
                            <br />
                            <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="更新" />
                            <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="取消" />
                            <br />
                            <br />
                        </span>
                    </EditItemTemplate>
                    <SelectedItemTemplate>
                        <span style="">StudentID:
                            <asp:Label ID="StudentIDLabel" runat="server" Text=‘<%# Eval("StudentID") %>‘ />
                            <br />
                            StudentPwd:
                            <asp:Label ID="StudentPwdLabel" runat="server" Text=‘<%# Eval("StudentPwd") %>‘ />
                            <br />
                            StudentName:
                            <asp:Label ID="StudentNameLabel" runat="server" Text=‘<%# Eval("StudentName") %>‘ />
                            <br />
                            StudentSex:
                            <asp:Label ID="StudentSexLabel" runat="server" Text=‘<%# Eval("StudentSex") %>‘ />
                            <br />
                            StudentAge:
                            <asp:Label ID="StudentAgeLabel" runat="server" Text=‘<%# Eval("StudentAge") %>‘ />
                            <br />
                            StudentBirthday:
                            <asp:Label ID="StudentBirthdayLabel" runat="server" Text=‘<%# Eval("StudentBirthday") %>‘ />
                            <br />
                            StudentConstellation:
                            <asp:Label ID="StudentConstellationLabel" runat="server" Text=‘<%# Eval("StudentConstellation") %>‘ />
                            <br />
                            StudentCollege:
                            <asp:Label ID="StudentCollegeLabel" runat="server" Text=‘<%# Eval("StudentCollege") %>‘ />
                            <br />
                            StudentMajor:
                            <asp:Label ID="StudentMajorLabel" runat="server" Text=‘<%# Eval("StudentMajor") %>‘ />
                            <br />
                            StudentHobby:
                            <asp:Label ID="StudentHobbyLabel" runat="server" Text=‘<%# Eval("StudentHobby") %>‘ />
                            <br />
                            StudentEmail:
                            <asp:Label ID="StudentEmailLabel" runat="server" Text=‘<%# Eval("StudentEmail") %>‘ />
                            <br />
                            StudentTEL:
                            <asp:Label ID="StudentTELLabel" runat="server" Text=‘<%# Eval("StudentTEL") %>‘ />
                            <br />
                            StudentAddress:
                            <asp:Label ID="StudentAddressLabel" runat="server" Text=‘<%# Eval("StudentAddress") %>‘ />
                            <br />
                            StudentSingle:
                            <asp:Label ID="StudentSingleLabel" runat="server" Text=‘<%# Eval("StudentSingle") %>‘ />
                            <br />
                            StudentPhoto:
                            <asp:Label ID="StudentPhotoLabel" runat="server" Text=‘<%# Eval("StudentPhoto") %>‘ />
                            <br />
                            StudentIntroduction:
                            <asp:Label ID="StudentIntroductionLabel" runat="server" Text=‘<%# Eval("StudentIntroduction") %>‘ />
                            <br />
                            DynamicID:
                            <asp:Label ID="DynamicIDLabel" runat="server" Text=‘<%# Eval("DynamicID") %>‘ />
                            <br />
                            StudentID1:
                            <asp:Label ID="StudentID1Label" runat="server" Text=‘<%# Eval("StudentID1") %>‘ />
                            <br />
                            DynamicText:
                            <asp:Label ID="DynamicTextLabel" runat="server" Text=‘<%# Eval("DynamicText") %>‘ />
                            <br />
                            DynamicDate:
                            <asp:Label ID="DynamicDateLabel" runat="server" Text=‘<%# Eval("DynamicDate") %>‘ />
                            <br />
                            DynamicPhoto:
                            <asp:Label ID="DynamicPhotoLabel" runat="server" Text=‘<%# Eval("DynamicPhoto") %>‘ />
                            <br />
                            DynamicZan:
                            <asp:Label ID="DynamicZanLabel" runat="server" Text=‘<%# Eval("DynamicZan") %>‘ />
                            <br />
                            <br />
                        </span>
                    </SelectedItemTemplate>
                </asp:ListView>
            </td>
        </tr>
        <tr>
            <td>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DataBase %>"
                    SelectCommand="SELECT *
FROM Student as S JOIN DynamicInformation as D on S.StudentID = D.StudentID order by D.DynamicDate desc"></asp:SqlDataSource>
            </td>
        </tr>
    </table>
</asp:Content>
时间: 2024-08-07 08:37:55

asp.net中listview下嵌套gridview的相关文章

ScrollView下嵌套GridView或ListView默认不在顶部的解决方法

当ScrollView下嵌套GridView或ListView时,如果内容超过一屏默认位置不在ScrollView的顶部,用scrollViewMsg.scrollTo(0,0)设置也不起作用,这是因为嵌套GridView或ListView获了焦点,解决方法有如下几种: 方法1把ScrollView里的第一个View获取焦点: baseView.setFocusable(true); baseView.setFocusableInTouchMode(true); baseView.request

ASP.NET中ListView用DataPager分页

最近在维护一个以前的项目,项目中用到ListView,在ListView的分页中用的是DataPager.最开始我将数据绑定放到了Page_Load事件中,数据的加载等都很正常,显示也没有问题,就是在点击分页按钮的时候分页总是不正确,这个问题困扰了我几天,期间我也想换用AspNetPager分页控件,在一次偶然的机会我搜索到ListView结合DataPager分页,其中关键的一句: 注意:使用本方法,不需要在页面的Page_Load事件中绑定数据到ListView控件,否则分页会有问题. 我将

android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。

我们直接入主题.所有问题例子请参照下图 1,怎样使图片具有点击事件? 答: 解决方法: 在你的BaseAdapter里面不要设置下面这三个东西,然后再设置GridView的onItemClick. gridView.setClickable(false); gridView.setPressed(false); gridView.setEnabled(false); 2,为什么我在已经处理了listView点击事件阻断的情况下,同时图片具有点击事件,此时再点击和图片同高度的空白处,却无法执行li

ListView 里面嵌套 GridView 遇到的问题及其解决方法。

我们直接入主题.所有问题例子请参照下图 1,怎样使图片具有点击事件? 答: 解决方法: 在你的BaseAdapter里面不要设置下面这三个东西,然后再设置GridView的onItemClick. gridView.setClickable(false); gridView.setPressed(false); gridView.setEnabled(false); 2,为什么我在已经处理了listView点击事件阻断的情况下,同时图片具有点击事件,此时再点击和图片同高度的空白处,却无法执行li

Android中ListView下拉刷新的实现

ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考.那我就不解释,直接上代码了. 这里需要自己重写一下ListView,重写代码如下: [java] view plain copy package net.loonggg.listview; import java.util.Date; import android.content.Context; import android.util.AttributeSet; import androi

【转载】Android中ListView下拉刷新的实现

在网上看到一个下拉刷新的例子,很的很棒,转载和更多的人分享学习 原文:http://blog.csdn.net/loongggdroid/article/details/9385535 ListView中的下拉刷新是非常常见的,也是经常使用的,看到有很多同学想要,那我就整理一下,供大家参考.那我就不解释,直接上代码了. 这里需要自己重写一下ListView,重写代码如下: [java] view plaincopy package net.loonggg.listview; import jav

asp.net中父子页面通过gridview中的按钮事件进行回传值的问题

这两天写BS程序,遇到父子页面传值的问题,以前没写过web系统,用了几天时间才将问题解决,总结下记录下来: 问题描述: 父页面A中有一个gridview,每行6个列,有5列中均有一个按钮,单击按钮,会根据列的不同进入不同的子页面,在子页面中有获取数据,并返回父页面的gridview中对应的行的对应列中. 问题关键在于如果确定点击的是gridview的哪一行的哪个按钮,因为数据回传的时候,还要放入该行的该列中. 所以需要考虑一下几个方面: 1.动态添加行,以及各行的各列中的按钮 2.点击某行某列的

android中listView下拉刷新

Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView.    下拉刷新界面最初流行于iphone应用界面,如图:     然后在Android中也逐渐被应用,比如微博,资讯类.    所以,今天要实现的结果应该也是类似的,先贴出最终完成效果,如下图,接下来我们一步一步实现. 1. 流程分析    下拉刷新最主要

Asp.net中,点击GridView表头实现数据的排序

一.实现该功能的基本工作. 1.  先添加一个GridView,取名为gvData. 2.  设置该控件的属性: 操作步骤如下 设置属性: 这4个属性,还要设置该控件AllowSorting="True",5点缺一不可. 3.  编写该控件的gvData_Sorting事件 双击,进去即可编写. 二.代码实现 双击,进去即可编写. usingSystem.Data; usingSystem.Data.SqlClient; namespace 排序 { public partial cl