GridView自定义TemplateField————把同一行中的内容分成多行显示///////若行数太多,则分行显示

来源:互联网 发布:linux tomcat启动java 编辑:程序博客网 时间:2024/05/20 11:24

一、前台

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="sample_Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="gvStudent" runat="server" AutoGenerateColumns="False" DataKeyNames="sid"
            OnRowEditing="gvStudent_RowEditing" OnRowCancelingEdit="gvStudent_RowCancelingEdit"
            OnRowUpdating="gvStudent_RowUpdating" Width="100%">
            <Columns>
                <asp:CommandField HeaderText="编辑" ShowEditButton="True" >
                <HeaderStyle Width="90px" />
                <ItemStyle Width="90px" />
                </asp:CommandField>
                <asp:TemplateField HeaderText="编号" Visible="False">
                    <ItemTemplate>
                        <%# Eval("sid") %>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="操作">
                    <ItemTemplate>
                        <table frame="void" border="1px" cellspacing="0" width="100%">
                            <tr>
                                <td>
                                    姓名
                                </td>
                                <td>
                                    <%# Eval("sname") %>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    性别
                                </td>
                                <td>
                                    <%# Eval("gender") %>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    年龄
                                </td>
                                <td>
                                    <%# Eval("age") %>
                                </td>
                            </tr>
                        </table>
                    </ItemTemplate>
                   
<EditItemTemplate>
                        <table frame="void" border="1px" cellspacing="0" width="100%">
                            <tr>
                            <td>姓名</td>
                                <td>
                                    <asp:TextBox ID="txtSname" runat="server" Text='<%# Eval("sname") %>'></asp:TextBox>
                                </td>
                            </tr>
                            <tr>
                            <td>性别</td>
                                <td>
                                    <asp:TextBox ID="txtGender" runat="server" Text='<%# Eval("gender") %>'></asp:TextBox>
                                </td>
                            </tr>
                            <tr>
                            <td>年龄</td>
                                <td>
                                    <asp:TextBox ID="txtAge" runat="server" Text='<%# Eval("age") %>'></asp:TextBox>
                                </td>
                            </tr>
                        </table>
                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>
            <RowStyle HorizontalAlign="Center" VerticalAlign="Middle" />
        </asp:GridView>
    </div>
    <div>
    </div>
    </form>
</body>
</html>

 

 

二、后台

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Model;

public partial class sample_Default2 : System.Web.UI.Page
{
    private Student stu = new Student();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BinGrid();
        }
    }
    private void BinGrid()
    {
        gvStudent.DataSource = stu.Student_Select();
        gvStudent.DataBind();
    }
    protected void gvStudent_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gvStudent.EditIndex = e.NewEditIndex;
        BinGrid();
    }
    protected void gvStudent_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        StudentInfo info = new StudentInfo();
        info.Sid = int.Parse(gvStudent.DataKeys[e.RowIndex].Value.ToString());
        info.Sname = ((TextBox)(gvStudent.Rows[e.RowIndex].Cells[1].FindControl("txtSname"))).Text;
        info.Gender = ((TextBox)(gvStudent.Rows[e.RowIndex].Cells[1].FindControl("txtGender"))).Text;
        info.Age = byte.Parse(((TextBox)(gvStudent.Rows[e.RowIndex].Cells[1].FindControl("txtAge"))).Text);
        gvStudent.EditIndex = -1;
        int rowCount = stu.Student_Update(info);
        if (rowCount > 0)
        {
            BinGrid();
        }
    }
    protected void gvStudent_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        gvStudent.EditIndex = -1;
        BinGrid();
    }
}

 

 

注意:GridView是一个大table,而嵌套的table中的内容算在大table的单元格内。如果要查找嵌套的table中的内容(如文本框中的文本),就需要先看该文本框在大table的那个单元格内,找到该单元格,然后在该单元格内查找该文本框控件。

 

 

原创粉丝点击