利用GridView显示主细表并一次编辑明细表所有数据的例子
全部代码如下:
ASPX:
CodeFile="Default2.aspx.cs" Inherits="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 id="Head1" runat="server">
<title>利用GridView显示主细表并一次编辑明细表所有数据的例子</title>
<style type="text/css">
td,div,a {font-size:12px}
</style>
<script type="text/javascript">
//<![CDATA[
function ShowHidden(sid,ev)
{
ev = ev || window.event;
var target = ev.target || ev.srcElement;
var oDiv = document.getElementById("div" + sid);
oDiv.style.display = oDiv.style.display == "none"?"block":"none";
target.innerHTML = oDiv.style.display == "none"?"显示":"隐藏";
}
//]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="MasterGridView" runat="server" AutoGenerateColumns="false" Width="780px"
BorderWidth="1" OnRowDataBound="MasterGridView_RowDataBound" DataKeyNames="id"
ShowHeader="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div style="width: 100%; padding: 2px; font-weight: bold; background-color: #DEDEDE;
float: left">
<span style="float: left">栏目名称:<%#Eval("Title") %></span><span style="float: right;
color: Red; cursor: pointer" onclick="ShowHidden('<%#Eval("id") %>',event)">隐藏</span></div>
<div style="background-color: #FFF; padding-left: 60px; clear: both" id="div<%#Eval("id") %>">
<asp:GridView ID="DetailGridView" runat="server" AutoGenerateColumns="false" ShowHeader="true"
HorizontalAlign="left" DataKeyNames="id" OnRowCommand="DetailGridView_RowCommand"
OnRowDeleting="DetailGridView_RowDeleting" Width="720px">
<HeaderStyle BackColor="#9999FF" />
<Columns>
<asp:TemplateField HeaderText="文章名称" HeaderStyle-Width="540px">
<ItemTemplate>
<input name="guid" value="<%#Eval("id") %>" type="hidden" />
<input name="Title<%#Eval("id") %>" value="<%#Eval("Title") %>" style="width: 100%;border:1px solid gray" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="发布日期" HeaderStyle-Width="100px" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<input name="Date<%#Eval("id") %>" value="<%# ((DateTime)Eval("CreateDate")).ToString("yyyy-MM-dd") %>" style="border:1px solid gray"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="编辑所有数据" />
</form>
</body>
</html>
C#:
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Web.UI.HtmlControls;
public partial class Default2 : System.Web.UI.Page
{
string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|aspxWeb.mdb;Persist Security Info=True";
OleDbConnection cn1;
protected void Page_Load( object sender, EventArgs e )
{
if (!Page.IsPostBack)
{
OleDbConnection cn = new OleDbConnection(ConnectionString);
cn.Open();
cn1 = new OleDbConnection(ConnectionString);
cn1.Open();
OleDbCommand cmd = new OleDbCommand("select * from [Subject]", cn);
OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
MasterGridView.DataSource = dr;
MasterGridView.DataBind();
dr.Close();
cmd.Dispose();
cn.Dispose();
cn1.Dispose();
cn = cn1 = null;
}
}
protected void MasterGridView_RowDataBound( object sender, GridViewRowEventArgs e )
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView oGridView = (GridView)e.Row.FindControl("DetailGridView");
if (oGridView != null)
{
OleDbCommand cmd = new OleDbCommand("select top 10 * from Document Where pid = " + MasterGridView.DataKeys[e.Row.RowIndex].Value, cn1);
OleDbDataReader dr1 = cmd.ExecuteReader();
oGridView.DataSource = dr1;
oGridView.DataBind();
dr1.Close();
cmd.Dispose();
}
}
}
protected void DetailGridView_RowDeleting( object sender, GridViewDeleteEventArgs e )
{
GridView a = (GridView)sender;
Response.Write("您要删除的记录是:<font color='red'>" + a.DataKeys[e.RowIndex].Value.ToString() + "</font> TODO:执行删除动作");
// TODO:执行删除动作
}
protected void DetailGridView_RowCommand( object sender, GridViewCommandEventArgs e )
{
}
protected void Button1_Click( object sender, EventArgs e )
{
string Guids = Request.Form["guid"];
if (Guids == null || Guids.Equals(string.Empty))
{
Response.Write("没有数据可以修改。");
return;
}
string sql;
OleDbCommand cmd;
OleDbConnection cn = new OleDbConnection();
cn.ConnectionString = ConnectionString;
cn.Open();
string[] ArrGuid = Guids.Split(',');
for (int i = 0 ; i < ArrGuid.Length ; i++)
{
sql = "UPDATE Document Set Title = @Title,CreateDate = @CreateDate Where id = @id";
cmd = new OleDbCommand(sql, cn);
cmd.Parameters.AddWithValue("@Title",Request.Form["Title" + ArrGuid[i].Trim()]);
cmd.Parameters.AddWithValue("@CreateDate", Request.Form["Date" + ArrGuid[i].Trim()]);
cmd.Parameters.AddWithValue("@id",ArrGuid[i].Trim());
cmd.ExecuteNonQuery();
Response.Write("<li>更新:id= " + ArrGuid[i] + " "+ Request.Form["Title" + ArrGuid[i].Trim()]);
}
cn.Close();
cn.Dispose();
}
}
相关文章:
TensorFlow搭建垃圾分类系统大师(免费领源码)
人工智能是一个多学科交叉融合的领域,其包含机器学习、计算机视觉、自然语言处理等多个子领域,其中计算机视觉是应用最广泛的领域之一。大多数人熟悉的手机和相机中的人脸识别功能,就是人工智能子领域——计算机视觉的体现。计算机视觉中的图…

for的循环遍体
以下讲解for的变体形式,对于一般的for语句常规这里不再赘述关于for变体 主要是用来实现一些特殊需求://注意不要使for成为死循环 for(int i0;i!5;1){//DOLOOP }1)假如,我们需要对循环变量i在循环外部使用,并调用循环变…

切版网上线,启用qieban.cn
2019独角兽企业重金招聘Python工程师标准>>> 近期,切版网收购并启用了qieban.cn域名,输入域名可以看到非常抢眼的黄底黑色的网站。复制国外psd2html模式,主要提供html5/css3前端外包。 可见切版网对域名的保护是非常的重视。据查询…

Microsoft .NET Pet Shop 4 架构与技术分析
1.项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能…
一学就会的 Python 时间转化总结(超全)
作者 | Peter来源 | Python编程时光在生活和工作中,我们每个人每天都在和时间打交道:早上什么时候起床?地铁几分钟来一趟?中午什么时候开始午休?明天是星期几?距离上次买衣服已经2个月呢?领导让…

ny20 吝啬的国度
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB难度:3描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果…

Linux常见命令(二)
随着Linux应用的扩展许多同学开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无…
谷歌编程语言年度榜NO.1:知识体系总结(2021版)
本文专注整理一些有关Python学习的知识体系。整理的Python知识体系主要包括基础知识,Python热门的应用方向,推荐书籍,FAQ以及一些常见面试题目,包含了作为一个Python全栈工程师以及数据分析工程师在开发工作和学习中需要用到或者可…

看看大网站到底是如何保障网络安全的
首先,服务器上用的是私有的操作系统和数据库,所谓私有,并不是完全自己写,而是说,全部都是进行私有化改造过的,一般使用开源的操作系统和数据库进行改造,比如说操作系统使用free bsd的改…

php 魔术方法 说明
1、__get、__set这两个方法是为在类和他们的父类中没有声明的属性而设计的。◆__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名。◆__set( $property, $value ) 给一个未定义的属性赋值时,此方法会被…

小功能 - 收藏集 - 掘金
中国可以访问 Google Codelabs 网站啦! - 掘金今天,Google 官方又宣布了一条信息「全球皆可访问的 Google Codelabs 网站」,说是全球,其实我们大家心里都明白,这是针对中国开发者而专门发布的一个网站,最近…

ASP.NET设置数据格式与String.Format使用总结
{0:d} YY-MM-DD{0:p} 百分比00.00%{0:N2} 12.68{0:N0} 13{0:c2} $12.68{0:d} 3/23/2003{0:T} 12:00:00 AM{0:男;;女} DataGrid-数据格式设置表达式 数据格式设置表达式 .NET Framework 格式设置表达式,它在数据显示在列中之前先应用于数据。此表达式由可选静态文本…

Android Display System --- Surface Flinger
SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统范围内的surface composer 功能,它能够将各种[url]应用[/url]程序的2D 、3D surface 进行组合。在具体讲SurfaceFlinger 之前,我们先…
最新组合式模型量化方法,实现FPGA最高硬件利用率,准确率-推理速度达到SOTA...
作者 | 王言治来源 | AI科技大本营(ID:rgznai100)深度神经网络(DNN)在图像、语言处理等领域获得了巨大成功,而如何将这些网络部署在ASIC、FPGA等嵌入式设备仍是热门研究方向。结构搜索,以及传统的剪枝、量化…

消息服务发送短信,手机接收不到短信解决思路
阿里云使用消息服务,发送注册码给手机。测试几次发现手机都接收不到,后台也没报错!今天我提交自己的工单,售后工程师已经帮我解决了,非常感谢他!官方代码:https://help.aliyun.com/document_det…

Asp.net中具体的日期格式化用法
1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD "JoinTime " DATAFORMATSTRING "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN > 2.数据控件如DataGrid/DataList等的件格式…
日本「AI 鱼脸识别」项目,每分钟识别 100 条
来源 | HyperAI超神经头图 | 视觉中国近日,日本的一个 AI 分拣鱼类项目进入实验阶段。这将有望改善日本渔业劳动力老龄化及短缺的社会现状。日本作为岛国,其独特的地理位置,让国民自古以来就跟鱼结下了不解之缘,甚至形成了其独特的…

使用Spring实现邮件发送
2019独角兽企业重金招聘Python工程师标准>>> 这两天写个小程序需要使用邮件发送的功能,在网上搜索了一帮子文章,感觉还是使用Spring的邮件发送功能比较方便,哈哈,懒人就这样子了,不想再动了。整好了&#x…

GZip压缩与解压缩
GZIP的压缩与解压缩代码: public static class CompressionHelper{/// <summary> /// Compress the byte[] /// </summary> /// <param name"input"></param> /// <returns></returns> public static byte[] Compres…

String.Format()方法
String.Format方法是我们在.Net应用开发时经常使用到的,它的灵活使用有时能够达到事半功倍的效果,下面我们就借用MSDN上的一个示例来向大家展示String.Format的各种用法。 该示例展示了Numeric、DateTime和Enumeration标准格式的使用,另外&am…

Brian 的 Perl 问题之万能指南
为什么80%的码农都做不了架构师?>>> PerlChina brians Guide to Solving Any Perl Problem Home Page | All Pages | Recently Revised | Authors | Feeds | Export | 原 名:Brian’s Guide to Solving Any Perl Problem 中 文: Brian 的 Pe…

联手小米,雀巢中国推出健康管家Nesfinity,满足个性化生活需求管理
1月20日,雀巢中国携手小米战略合作正式开启,双方共同打造的雀巢健康管家“Nesfinity”正式发布。这项综合性智能健康生活新生态的合作,不仅开启了雀巢中国在智能物联网和大数据应用的新历程,更是双方由品牌合作跨入战略合作的开端…

使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒
下面程序使用了两种方法计算两个时间相差 天,小时,分钟,秒 package jodotest;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import org.joda.time.DateTime;import org.joda.time.Days;import …

C语言格式控制符和转义字符
1. 格式控制符 格式输出printf 作用是向终端输出若干个类型任意的数据。 格式:printf (格式控制符,输出列表) 1) 格式控制符 l % 格式说明引导符。 l - 指定…

面试高频题:单链表的逆置操作/链表逆序
函数内对形参的操作并不能影响实参,函数内修改的是实参的副本。要想在函数内部修改输入参数,要么传入的是实参的引用,要么传入的是实参的地址。 #include <iostream> #include <cstdlib> #include <cstring>//strlen using…
猖狂!微软、思科源码惨遭黑客 100 万美元打包出售
【编者按】SolarWinds 黑客攻击事件又延伸出新的危害了:微软、思科、FireEye 等公司的源代码在一网站公开出售,明码标价,甚至打包价为一百万,究竟是什么情况?整理 | 郑丽媛出品 | CSDN(ID:CSDNn…

vmstart的用法
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是…

配置.net 3.0开发环境
开发.net 3.0 应用程序,需要配置开发环境。配置步骤如下:1. 开发.net 3.0,首先当然要安装.NET Framework 3.0 了安装前使用windowsupdate安装好最新的更新(Windows XP SP2 和Windows 2003 SP1一定要安装),下…

杭电 hdu 2096
小明AB:#include<iostream> using namespace std; int main(){int n;cin>>n;cin.ignore();while(n--){int a,b;cin>>a>>b;cout<<(a%100b%100)%100<<endl;}return 0; }转载于:https://blog.51cto.com/beyond316/1261849

关于2021年及未来,人工智能的5大趋势预测
吴恩达教授(美国斯坦福大学计算机科学系和电子工程系副教授)曾反复强调一句名言:"人工智能是新电力。" 我们正跟随着人工智能发展的脚步,走向第四次工业革命的浪潮之巅。 毋庸置疑,人工智能已经成为社会进步…