利用GridView显示主细表并一次编辑明细表所有数据的例子

全部代码如下:

ASPX:

<%@PageLanguage="C#"ValidateRequest="false"AutoEventWireup="true"EnableViewState="false"
CodeFile
="Default2.aspx.cs"Inherits="Default2"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headid="Head1"runat="server">
<title>利用GridView显示主细表并一次编辑明细表所有数据的例子</title>
<styletype="text/css">
td,div,a
{font-size:12px}
</style>

<scripttype="text/javascript">
//<![CDATA[
functionShowHidden(sid,ev)
{
ev
=ev||window.event;
vartarget=ev.target||ev.srcElement;
varoDiv=document.getElementById("div"+sid);
oDiv.style.display
=oDiv.style.display=="none"?"block":"none";
target.innerHTML
=oDiv.style.display=="none"?"显示":"隐藏";
}
//]]>
</script>

</head>
<body>
<formid="form1"runat="server">
<asp:GridViewID="MasterGridView"runat="server"AutoGenerateColumns="false"Width="780px"
BorderWidth
="1"OnRowDataBound="MasterGridView_RowDataBound"DataKeyNames="id"
ShowHeader
="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<divstyle="width:100%;padding:2px;font-weight:bold;background-color:#DEDEDE;
float:left"
>
<spanstyle="float:left">栏目名称:<%#Eval("Title")%></span><spanstyle="float:right;
color:Red;cursor:pointer"
onclick="ShowHidden('<%#Eval("id")%>',event)">隐藏</span></div>
<divstyle="background-color:#FFF;padding-left:60px;clear:both"id="div<%#Eval("id")%>">
<asp:GridViewID="DetailGridView"runat="server"AutoGenerateColumns="false"ShowHeader="true"
HorizontalAlign
="left"DataKeyNames="id"OnRowCommand="DetailGridView_RowCommand"
OnRowDeleting
="DetailGridView_RowDeleting"Width="720px">
<HeaderStyleBackColor="#9999FF"/>
<Columns>
<asp:TemplateFieldHeaderText="文章名称"HeaderStyle-Width="540px">
<ItemTemplate>
<inputname="guid"value="<%#Eval("id")%>"type="hidden"/>
<inputname="Title<%#Eval("id")%>"value="<%#Eval("Title")%>"style="width:100%;border:1pxsolidgray"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateFieldHeaderText="发布日期"HeaderStyle-Width="100px"ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<inputname="Date<%#Eval("id")%>"value="<%#((DateTime)Eval("CreateDate")).ToString("yyyy-MM-dd")%>"style="border:1pxsolidgray"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ButtonID="Button1"runat="server"OnClick="Button1_Click"Text="编辑所有数据"/>
</form>
</body>
</html>

C#:

usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Data.OleDb;
usingSystem.Web.UI.HtmlControls;

publicpartialclassDefault2:System.Web.UI.Page
{
stringConnectionString=@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|aspxWeb.mdb;PersistSecurityInfo=True";
OleDbConnectioncn1;


protectedvoidPage_Load(objectsender,EventArgse)
{
if(!Page.IsPostBack)
{
OleDbConnectioncn
=newOleDbConnection(ConnectionString);
cn.Open();
cn1
=newOleDbConnection(ConnectionString);
cn1.Open();
OleDbCommandcmd
=newOleDbCommand("select*from[Subject]",cn);
OleDbDataReaderdr
=cmd.ExecuteReader(CommandBehavior.CloseConnection);
MasterGridView.DataSource
=dr;
MasterGridView.DataBind();
dr.Close();
cmd.Dispose();
cn.Dispose();
cn1.Dispose();
cn
=cn1=null;
}
}
protectedvoidMasterGridView_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{

GridViewoGridView
=(GridView)e.Row.FindControl("DetailGridView");
if(oGridView!=null)
{
OleDbCommandcmd
=newOleDbCommand("selecttop10*fromDocumentWherepid="+MasterGridView.DataKeys[e.Row.RowIndex].Value,cn1);
OleDbDataReaderdr1
=cmd.ExecuteReader();
oGridView.DataSource
=dr1;
oGridView.DataBind();
dr1.Close();
cmd.Dispose();
}
}
}

protectedvoidDetailGridView_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
GridViewa
=(GridView)sender;
Response.Write(
"您要删除的记录是:<fontcolor='red'>"+a.DataKeys[e.RowIndex].Value.ToString()+"</font>&nbsp;&nbsp;&nbsp;&nbsp;TODO:执行删除动作");
//TODO:执行删除动作
}
protectedvoidDetailGridView_RowCommand(objectsender,GridViewCommandEventArgse)
{

}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringGuids=Request.Form["guid"];
if(Guids==null||Guids.Equals(string.Empty))
{
Response.Write(
"没有数据可以修改。");
return;
}
stringsql;
OleDbCommandcmd;
OleDbConnectioncn
=newOleDbConnection();
cn.ConnectionString
=ConnectionString;
cn.Open();
string[]ArrGuid=Guids.Split(',');
for(inti=0;i<ArrGuid.Length;i++)
{
sql
="UPDATEDocumentSetTitle=@Title,CreateDate=@CreateDateWhereid=@id";
cmd
=newOleDbCommand(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();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值