gridview控件本身並不支持新增記錄.一般情況是通過 DetailView 或 FormView 來新增記錄的.
但是我可以過GridView 的 FooterTemplate來實現新增功能.請看以下代碼:
<%
@ Page Language
=
"
C#
"
ClassName
=
"
Default_aspx
"
%>
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.1//EN " " http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd " >
< script runat = " server " >
< script runat = " server " >
void Button1_Click( object sender, EventArgs e)
... {
TextBox customerID = GridView1.FooterRow.FindControl("CustomerIDTextBox") as TextBox;
TextBox companyName = GridView1.FooterRow.FindControl("CompanyNameTextBox") as TextBox;
DropDownList ContactTitle = GridView1.FooterRow.FindControl("ContactTitleDropDownList") as DropDownList;
SqlDataSource1.InsertParameters["CustomerID"].DefaultValue = customerID.Text;
SqlDataSource1.InsertParameters["CompanyName"].DefaultValue = companyName.Text;
SqlDataSource1.InsertParameters["ContactTitle"].DefaultValue = ContactTitle.SelectedValue;
SqlDataSource1.Insert();
}
void AddButton1_Click( object sender, EventArgs e)
... {
GridView1.ShowFooter = true;
}
void CancelButton1_Click( object sender, EventArgs e)
... {
GridView1.ShowFooter = false;
}
</ script >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > Untitled Page </ title >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
< asp:Button ID = " AddButton1 " runat = " Server " Text = " Add new Item " OnClick = " AddButton1_Click " />
< asp:GridView ID = " GridView1 " Runat = " server " DataSourceID = " SqlDataSource1 " DataKeyNames = " CustomerID "
AutoGenerateColumns = " False " >
< Columns >
< asp:TemplateField >
< ItemTemplate >
< asp:Label ID = " CustomerIDLabel " Runat = " Server " ><% # Eval( " CustomerID " ) %></ asp:Label >
</ ItemTemplate >
< FooterTemplate >
< asp:TextBox ID = " CustomerIDTextBox " Runat = " server " ></ asp:TextBox >
</ FooterTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp:Label ID = " CompanyNameLabel " Runat = " Server " ><% # Eval( " CompanyName " ) %></ asp:Label >
</ ItemTemplate >
< FooterTemplate >
< asp:TextBox ID = " CompanyNameTextBox " Runat = " server " ></ asp:TextBox >
</ FooterTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< FooterTemplate >
< asp:DropDownList ID = " ContactTitleDropDownList " Runat = " server " DataSourceID = " SqlDataSource2 " DataTextField = " ContactTitle " DataValueField = " ContactTitle " >
</ asp:DropDownList >
< asp:SqlDataSource ID = " SqlDataSource2 " Runat = " server " SelectCommand = " SELECT DISTINCT [ContactTitle] FROM [Customers] "
ConnectionString = " <%$ ConnectionStrings:AppConnectionString1 %> " >
</ asp:SqlDataSource >
< asp:Button ID = " Button1 " Runat = " server " Text = " Add " OnClick = " Button1_Click " />
< asp:Button ID = " CancelButton1 " Runat = " server " Text = " Cancel " OnClick = " CancelButton1_Click " />
</ FooterTemplate >
< ItemTemplate >
< asp:DropDownList ID = " ContactTitleDropDown " SelectedValue = ' <%# Bind("ContactTitle") %> ' Runat = " Server " DataSourceID = " SqlDataSource3 " DataTextField = " ContactTitle " DataValueField = " ContactTitle " ></ asp:DropDownList >
< asp:SqlDataSource ID = " SqlDataSource3 " Runat = " server " SelectCommand = " SELECT DISTINCT [ContactTitle] FROM [Customers] "
ConnectionString = " <%$ ConnectionStrings:AppConnectionString1 %> " EnableCaching = " True " >
</ asp:SqlDataSource >
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
< asp:SqlDataSource ID = " SqlDataSource1 " Runat = " server "
InsertCommand = " INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactTitle]) VALUES (@CustomerID, @CompanyName, @ContactTitle) "
SelectCommand = " SELECT [CustomerID], [CompanyName], [ContactTitle] FROM [Customers] "
ConnectionString = " <%$ ConnectionStrings:AppConnectionString1 %> " >
< DeleteParameters >
< asp:Parameter Type = " String " Name = " CustomerID " ></ asp:Parameter >
</ DeleteParameters >
< UpdateParameters >
< asp:Parameter Type = " String " Name = " CompanyName " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " ContactTitle " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " CustomerID " ></ asp:Parameter >
</ UpdateParameters >
< InsertParameters >
< asp:Parameter Type = " String " Name = " CustomerID " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " CompanyName " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " ContactTitle " ></ asp:Parameter >
</ InsertParameters >
</ asp:SqlDataSource >
</ div >
</ form >
</ body >
</ html >
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.1//EN " " http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd " >
< script runat = " server " >
< script runat = " server " >
void Button1_Click( object sender, EventArgs e)
... {
TextBox customerID = GridView1.FooterRow.FindControl("CustomerIDTextBox") as TextBox;
TextBox companyName = GridView1.FooterRow.FindControl("CompanyNameTextBox") as TextBox;
DropDownList ContactTitle = GridView1.FooterRow.FindControl("ContactTitleDropDownList") as DropDownList;
SqlDataSource1.InsertParameters["CustomerID"].DefaultValue = customerID.Text;
SqlDataSource1.InsertParameters["CompanyName"].DefaultValue = companyName.Text;
SqlDataSource1.InsertParameters["ContactTitle"].DefaultValue = ContactTitle.SelectedValue;
SqlDataSource1.Insert();
}
void AddButton1_Click( object sender, EventArgs e)
... {
GridView1.ShowFooter = true;
}
void CancelButton1_Click( object sender, EventArgs e)
... {
GridView1.ShowFooter = false;
}
</ script >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > Untitled Page </ title >
</ head >
< body >
< form id = " form1 " runat = " server " >
< div >
< asp:Button ID = " AddButton1 " runat = " Server " Text = " Add new Item " OnClick = " AddButton1_Click " />
< asp:GridView ID = " GridView1 " Runat = " server " DataSourceID = " SqlDataSource1 " DataKeyNames = " CustomerID "
AutoGenerateColumns = " False " >
< Columns >
< asp:TemplateField >
< ItemTemplate >
< asp:Label ID = " CustomerIDLabel " Runat = " Server " ><% # Eval( " CustomerID " ) %></ asp:Label >
</ ItemTemplate >
< FooterTemplate >
< asp:TextBox ID = " CustomerIDTextBox " Runat = " server " ></ asp:TextBox >
</ FooterTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< ItemTemplate >
< asp:Label ID = " CompanyNameLabel " Runat = " Server " ><% # Eval( " CompanyName " ) %></ asp:Label >
</ ItemTemplate >
< FooterTemplate >
< asp:TextBox ID = " CompanyNameTextBox " Runat = " server " ></ asp:TextBox >
</ FooterTemplate >
</ asp:TemplateField >
< asp:TemplateField >
< FooterTemplate >
< asp:DropDownList ID = " ContactTitleDropDownList " Runat = " server " DataSourceID = " SqlDataSource2 " DataTextField = " ContactTitle " DataValueField = " ContactTitle " >
</ asp:DropDownList >
< asp:SqlDataSource ID = " SqlDataSource2 " Runat = " server " SelectCommand = " SELECT DISTINCT [ContactTitle] FROM [Customers] "
ConnectionString = " <%$ ConnectionStrings:AppConnectionString1 %> " >
</ asp:SqlDataSource >
< asp:Button ID = " Button1 " Runat = " server " Text = " Add " OnClick = " Button1_Click " />
< asp:Button ID = " CancelButton1 " Runat = " server " Text = " Cancel " OnClick = " CancelButton1_Click " />
</ FooterTemplate >
< ItemTemplate >
< asp:DropDownList ID = " ContactTitleDropDown " SelectedValue = ' <%# Bind("ContactTitle") %> ' Runat = " Server " DataSourceID = " SqlDataSource3 " DataTextField = " ContactTitle " DataValueField = " ContactTitle " ></ asp:DropDownList >
< asp:SqlDataSource ID = " SqlDataSource3 " Runat = " server " SelectCommand = " SELECT DISTINCT [ContactTitle] FROM [Customers] "
ConnectionString = " <%$ ConnectionStrings:AppConnectionString1 %> " EnableCaching = " True " >
</ asp:SqlDataSource >
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
< asp:SqlDataSource ID = " SqlDataSource1 " Runat = " server "
InsertCommand = " INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactTitle]) VALUES (@CustomerID, @CompanyName, @ContactTitle) "
SelectCommand = " SELECT [CustomerID], [CompanyName], [ContactTitle] FROM [Customers] "
ConnectionString = " <%$ ConnectionStrings:AppConnectionString1 %> " >
< DeleteParameters >
< asp:Parameter Type = " String " Name = " CustomerID " ></ asp:Parameter >
</ DeleteParameters >
< UpdateParameters >
< asp:Parameter Type = " String " Name = " CompanyName " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " ContactTitle " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " CustomerID " ></ asp:Parameter >
</ UpdateParameters >
< InsertParameters >
< asp:Parameter Type = " String " Name = " CustomerID " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " CompanyName " ></ asp:Parameter >
< asp:Parameter Type = " String " Name = " ContactTitle " ></ asp:Parameter >
</ InsertParameters >
</ asp:SqlDataSource >
</ div >
</ form >
</ body >
</ html >
GridView1.ShowFooter 屬性是控制footer是否顯示的.默認值是false