以前做Asp.Net 1.X是经常会碰到处理列表控件的提示情况,现在开始学习Asp.Net2.0了, 用GridView完成相似的事情,更新和删除显示提示信息,确认后使用SqlDataSource 完成数据库操作的
<%
@ Page Language
=
"
C#
"
%>
< script runat = " server " >
void GridView1_RowCommand( object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName.ToLower())
{
case " edit " :
GridView1.Columns[ 0 ].Visible = false ;
GridView1.Columns[ 1 ].Visible = true ;
break ;
case " update " :
case " delete " :
case " cancel " :
GridView1.Columns[ 0 ].Visible = true ;
GridView1.Columns[ 1 ].Visible = false ;
break ;
default :
// Do nothing.
break ;
}
}
void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
int index = GridView1.EditIndex;
GridViewRow row = GridView1.Rows[index];
TextBox firstNameTextBox = (TextBox)row.Cells[ 1 ].FindControl( " FirstNameTextBox " );
String firstName = "" ;
if (firstNameTextBox != null )
{
firstName = firstNameTextBox.Text;
}
TextBox lastNameTextBox = (TextBox)row.Cells[ 2 ].FindControl( " LastNameTextBox " );
String lastName = "" ;
if (lastNameTextBox != null )
{
lastName = lastNameTextBox.Text;
}
Parameter lastNameParameter = new Parameter( " au_lname " , TypeCode.String, lastName);
Parameter firstNameParameter = new Parameter( " au_fname " , TypeCode.String, firstName);
SqlDataSource1.UpdateParameters.Clear();
SqlDataSource1.UpdateParameters.Add(lastNameParameter);
SqlDataSource1.UpdateParameters.Add(firstNameParameter);
}
void GridView1_RowDeleting( object sender, GridViewDeleteEventArgs e)
{
SqlDataSource1.DeleteParameters.Clear();
}
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > GridView更新和删除显示提示信息 - 王智 - 2006 </ title >
< form id = " form1 " runat = " server " >
< div >
< asp:GridView ID = " GridView1 " runat = " server "
DataSourceID = " SqlDataSource1 " AutoGenerateColumns = " False " DataKeyNames = " au_id " OnRowCommand = " GridView1_RowCommand " OnRowUpdating = " GridView1_RowUpdating " OnRowDeleting = " GridView1_RowDeleting " >
< Columns >
< asp:TemplateField >
< ItemTemplate >
< asp:LinkButton ID = " Edit " runat = " server " CommandName = " Edit " > 编辑 </ asp:LinkButton >
</ ItemTemplate >
</ asp:TemplateField >
< asp:TemplateField Visible = " False " >
< ItemTemplate >
< asp:LinkButton ID = " Update " runat = " server " CommandName = " Update " OnClientClick = " return confirm('确定要更新?'); " > 更新 </ asp:LinkButton >& nbsp; & nbsp;
< asp:LinkButton ID = " Delete " runat = " server " CommandName = " Delete " OnClientClick = " return confirm('确定要删除'); " > 删除 </ asp:LinkButton >& nbsp; & nbsp;
< asp:LinkButton ID = " Cancel " runat = " server " CommandName = " Cancel " > 取消 </ asp:LinkButton >
</ ItemTemplate >
</ asp:TemplateField >
< asp:templatefield headertext = " Last Name " >
< itemtemplate >
<% #Eval( " au_lname " ) %>
</ itemtemplate >
< edititemtemplate >
< asp:textbox id = " LastNameTextBox " text = ' <%#Eval("au_lname") %> '
width = " 175 " runat = " server " />
< br />
< asp:requiredfieldvalidator id = " LastNameRequiredValidator " controltovalidate = " LastNameTextBox "
errormessage = " Please enter a last name. " validationgroup = " NameGroup " runat = " server " />
</ edititemtemplate >
</ asp:templatefield >
< asp:templatefield headertext = " First Name " >
< itemtemplate >
<% #Eval( " au_fname " ) %>
</ itemtemplate >
< edititemtemplate >
< asp:textbox id = " FirstNameTextBox " text = ' <%#Eval("au_fname") %> '
width = " 175 " runat = " server " />
< br />
< asp:requiredfieldvalidator id = " FirstNameRequiredValidator " controltovalidate = " FirstNameTextBox "
errormessage = " Please enter a first name. " validationgroup = " NameGroup " runat = " server " />
</ edititemtemplate >
</ asp:templatefield >
</ Columns >
</ asp:GridView >
< asp:SqlDataSource ID = " SqlDataSource1 " runat = " server " ConnectionString = " <%$ ConnectionStrings:Pubs2000 %> "
ProviderName = " <%$ ConnectionStrings:Pubs2000.ProviderName %> " SelectCommand = " SELECT au_id, au_lname, au_fname FROM authors "
UpdateCommand = " UPDATE authors SET au_lname = @au_lname, au_fname = @au_fname WHERE (au_id = @au_id) "
DeleteCommand = " DELETE FROM authors WHERE (au_id = @au_id) " >
</ asp:SqlDataSource >
</ div >
</ form >
< script runat = " server " >
void GridView1_RowCommand( object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName.ToLower())
{
case " edit " :
GridView1.Columns[ 0 ].Visible = false ;
GridView1.Columns[ 1 ].Visible = true ;
break ;
case " update " :
case " delete " :
case " cancel " :
GridView1.Columns[ 0 ].Visible = true ;
GridView1.Columns[ 1 ].Visible = false ;
break ;
default :
// Do nothing.
break ;
}
}
void GridView1_RowUpdating( object sender, GridViewUpdateEventArgs e)
{
int index = GridView1.EditIndex;
GridViewRow row = GridView1.Rows[index];
TextBox firstNameTextBox = (TextBox)row.Cells[ 1 ].FindControl( " FirstNameTextBox " );
String firstName = "" ;
if (firstNameTextBox != null )
{
firstName = firstNameTextBox.Text;
}
TextBox lastNameTextBox = (TextBox)row.Cells[ 2 ].FindControl( " LastNameTextBox " );
String lastName = "" ;
if (lastNameTextBox != null )
{
lastName = lastNameTextBox.Text;
}
Parameter lastNameParameter = new Parameter( " au_lname " , TypeCode.String, lastName);
Parameter firstNameParameter = new Parameter( " au_fname " , TypeCode.String, firstName);
SqlDataSource1.UpdateParameters.Clear();
SqlDataSource1.UpdateParameters.Add(lastNameParameter);
SqlDataSource1.UpdateParameters.Add(firstNameParameter);
}
void GridView1_RowDeleting( object sender, GridViewDeleteEventArgs e)
{
SqlDataSource1.DeleteParameters.Clear();
}
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
< title > GridView更新和删除显示提示信息 - 王智 - 2006 </ title >
< form id = " form1 " runat = " server " >
< div >
< asp:GridView ID = " GridView1 " runat = " server "
DataSourceID = " SqlDataSource1 " AutoGenerateColumns = " False " DataKeyNames = " au_id " OnRowCommand = " GridView1_RowCommand " OnRowUpdating = " GridView1_RowUpdating " OnRowDeleting = " GridView1_RowDeleting " >
< Columns >
< asp:TemplateField >
< ItemTemplate >
< asp:LinkButton ID = " Edit " runat = " server " CommandName = " Edit " > 编辑 </ asp:LinkButton >
</ ItemTemplate >
</ asp:TemplateField >
< asp:TemplateField Visible = " False " >
< ItemTemplate >
< asp:LinkButton ID = " Update " runat = " server " CommandName = " Update " OnClientClick = " return confirm('确定要更新?'); " > 更新 </ asp:LinkButton >& nbsp; & nbsp;
< asp:LinkButton ID = " Delete " runat = " server " CommandName = " Delete " OnClientClick = " return confirm('确定要删除'); " > 删除 </ asp:LinkButton >& nbsp; & nbsp;
< asp:LinkButton ID = " Cancel " runat = " server " CommandName = " Cancel " > 取消 </ asp:LinkButton >
</ ItemTemplate >
</ asp:TemplateField >
< asp:templatefield headertext = " Last Name " >
< itemtemplate >
<% #Eval( " au_lname " ) %>
</ itemtemplate >
< edititemtemplate >
< asp:textbox id = " LastNameTextBox " text = ' <%#Eval("au_lname") %> '
width = " 175 " runat = " server " />
< br />
< asp:requiredfieldvalidator id = " LastNameRequiredValidator " controltovalidate = " LastNameTextBox "
errormessage = " Please enter a last name. " validationgroup = " NameGroup " runat = " server " />
</ edititemtemplate >
</ asp:templatefield >
< asp:templatefield headertext = " First Name " >
< itemtemplate >
<% #Eval( " au_fname " ) %>
</ itemtemplate >
< edititemtemplate >
< asp:textbox id = " FirstNameTextBox " text = ' <%#Eval("au_fname") %> '
width = " 175 " runat = " server " />
< br />
< asp:requiredfieldvalidator id = " FirstNameRequiredValidator " controltovalidate = " FirstNameTextBox "
errormessage = " Please enter a first name. " validationgroup = " NameGroup " runat = " server " />
</ edititemtemplate >
</ asp:templatefield >
</ Columns >
</ asp:GridView >
< asp:SqlDataSource ID = " SqlDataSource1 " runat = " server " ConnectionString = " <%$ ConnectionStrings:Pubs2000 %> "
ProviderName = " <%$ ConnectionStrings:Pubs2000.ProviderName %> " SelectCommand = " SELECT au_id, au_lname, au_fname FROM authors "
UpdateCommand = " UPDATE authors SET au_lname = @au_lname, au_fname = @au_fname WHERE (au_id = @au_id) "
DeleteCommand = " DELETE FROM authors WHERE (au_id = @au_id) " >
</ asp:SqlDataSource >
</ div >
</ form >