利用GridView显示主细表并一次编辑明细表所有数据的例子
生活随笔
收集整理的這篇文章主要介紹了
利用GridView显示主细表并一次编辑明细表所有数据的例子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
全部代碼如下:?
ASPX:
<%@?Page?Language="C#"?ValidateRequest="false"?AutoEventWireup="true"?EnableViewState="false"??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;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();
??}
}
?
總結
以上是生活随笔為你收集整理的利用GridView显示主细表并一次编辑明细表所有数据的例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net 2.0防止同一用户同时登
- 下一篇: Microsoft .NET Pet S