1、添加控件如图:
2、配置gridview1的数据源,选择customers表的CustomerID、CompanyName、ContactName、Country字段。然后点“WHERE”进入“添加WHERE”子句界面,“列”选择CustomerID,“运算符”为like,"源"为control,“控件id”为TextBox1。点"添加"就可以了。然后再同样的方式设置CompanyName like DropDownList1 。点添加,就可以了。3、双击“Search”按钮进入Default.aspx.cs添加代码段如下:
protected
void
Button1_Click(
object
sender, EventArgs e)
... {
SqlDataSource1.SelectCommand = "SELECT [CustomerID], [CompanyName], [ContactName],
[Country] FROM [Customers] WHERE (([CustomerID] LIKE '%' + @CustomerID + '%') AND ([CompanyName]
LIKE '%' + @CompanyName + '%'))";
}
... {
SqlDataSource1.SelectCommand = "SELECT [CustomerID], [CompanyName], [ContactName],
[Country] FROM [Customers] WHERE (([CustomerID] LIKE '%' + @CustomerID + '%') AND ([CompanyName]
LIKE '%' + @CompanyName + '%'))";
}
呵呵,这个SELECT语句我是从Default.aspx页面拿过来的。
然后把Default.aspx里原来的SELECT语句改为很简单的
SelectCommand
=
"
SELECT [CustomerID], [CompanyName], [ContactName], [Country] FROM [Customers]
"
4、对DropDownList的设置如下:
<
asp:DropDownList
ID
="DropDownList1"
runat
="server"
>
<asp:ListItem Selected=True></asp:ListItem>
<asp:ListItem >a</asp:ListItem>
<asp:ListItem >aa</asp:ListItem>
<asp:ListItem >ab</asp:ListItem>
</ asp:DropDownList >
<asp:ListItem Selected=True></asp:ListItem>
<asp:ListItem >a</asp:ListItem>
<asp:ListItem >aa</asp:ListItem>
<asp:ListItem >ab</asp:ListItem>
</ asp:DropDownList >
Selected=True相当是DropDownList的默认值。
5、这样会看不到东西,要把
<
SelectParameters
>
< asp:ControlParameter ControlID ="TextBox1" Name ="CustomerID" PropertyName ="Text"
Type ="String" />
< asp:ControlParameter ControlID ="DropDownList1" Name ="CompanyName"
PropertyName ="SelectedValue"
Type ="String" />
</ SelectParameters >
< asp:ControlParameter ControlID ="TextBox1" Name ="CustomerID" PropertyName ="Text"
Type ="String" />
< asp:ControlParameter ControlID ="DropDownList1" Name ="CompanyName"
PropertyName ="SelectedValue"
Type ="String" />
</ SelectParameters >
改为:
<
SelectParameters
>
< asp:ControlParameter ControlID ="TextBox1" Name ="CustomerID" PropertyName ="Text"
Type ="String" ConvertEmptyStringToNull ="False" />
< asp:ControlParameter ControlID ="DropDownList1" Name ="CompanyName"
PropertyName ="SelectedValue"
Type ="String" ConvertEmptyStringToNull="False" />
</ SelectParameters >
< asp:ControlParameter ControlID ="TextBox1" Name ="CustomerID" PropertyName ="Text"
Type ="String" ConvertEmptyStringToNull ="False" />
< asp:ControlParameter ControlID ="DropDownList1" Name ="CompanyName"
PropertyName ="SelectedValue"
Type ="String" ConvertEmptyStringToNull="False" />
</ SelectParameters >
6、OK了!
下面提供代码:
一、Default.aspx的代码:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
%>
<! 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 runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox >
< asp:Button ID ="Button1" runat ="server" OnClick ="Button1_Click" Text ="search" Width ="88px" />< br />
< asp:DropDownList ID ="DropDownList1" runat ="server" >
< asp:ListItem Selected =True ></ asp:ListItem >
< asp:ListItem > a </ asp:ListItem >
< asp:ListItem > aa </ asp:ListItem >
< asp:ListItem > ab </ asp:ListItem >
</ asp:DropDownList >
< br />
< br />
< asp:GridView ID ="GridView1" runat ="server" AllowPaging ="True" AllowSorting ="True"
AutoGenerateColumns ="False" DataKeyNames ="CustomerID" DataSourceID ="SqlDataSource1" OnSelectedIndexChanged ="GridView1_SelectedIndexChanged" AutoGenerateEditButton ="True" >
< Columns >
< asp:BoundField DataField ="CustomerID" HeaderText ="CustomerID" ReadOnly ="True" SortExpression ="CustomerID" />
< asp:BoundField DataField ="CompanyName" HeaderText ="CompanyName" SortExpression ="CompanyName" />
< asp:BoundField DataField ="ContactName" HeaderText ="ContactName" SortExpression ="ContactName" />
< asp:BoundField DataField ="Country" HeaderText ="Country" SortExpression ="Country" />
< asp:TemplateField HeaderText ="City" >
< ItemTemplate >
< asp:Label ID ="Label1" runat ="server" Text ='<%# Bind("City") % > ' Width="184px"> </ asp:Label >
</ ItemTemplate >
< EditItemTemplate >
< asp:DropDownList ID ="DropDownList2" runat ="server" SelectedValue ='<%# Bind ("City") % > ' DataSourceID="SqlDataSource1" DataTextField="City" DataValueField="City">
</ asp:DropDownList >
</ EditItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
< asp:SqlDataSource ID ="SqlDataSource1" runat ="server" ConnectionString ="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand ="SELECT [CustomerID], [CompanyName], [ContactName], [Country], [City] FROM [Customers]"
DeleteCommand ="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID"
InsertCommand ="INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactName], [Country], [City]) VALUES (@CustomerID, @CompanyName, @ContactName, @Country, @City)"
UpdateCommand ="UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactName] = @ContactName, [Country] = @Country, [City] = @City WHERE [CustomerID] = @CustomerID" >
< DeleteParameters >
< asp:Parameter Name ="CustomerID" Type ="String" />
</ DeleteParameters >
< UpdateParameters >
< asp:Parameter Name ="CompanyName" Type ="String" />
< asp:Parameter Name ="ContactName" Type ="String" />
< asp:Parameter Name ="Country" Type ="String" />
< asp:Parameter Name ="City" Type ="String" />
< asp:Parameter Name ="CustomerID" Type ="String" />
</ UpdateParameters >
< InsertParameters >
< asp:Parameter Name ="CustomerID" Type ="String" />
< asp:Parameter Name ="CompanyName" Type ="String" />
< asp:Parameter Name ="ContactName" Type ="String" />
< asp:Parameter Name ="Country" Type ="String" />
< asp:Parameter Name ="City" Type ="String" />
</ InsertParameters >
< SelectParameters >
< asp:ControlParameter ControlID ="TextBox1" Name ="CustomerID" PropertyName ="Text"
Type ="String" ConvertEmptyStringToNull ="False" />
< asp:ControlParameter ControlID ="DropDownList1" Name ="CompanyName"
PropertyName ="SelectedValue"
Type ="String" ConvertEmptyStringToNull ="False" />
</ SelectParameters >
</ asp:SqlDataSource >
</ div >
</ form >
</ body >
</ html >
<! 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 runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:TextBox ID ="TextBox1" runat ="server" ></ asp:TextBox >
< asp:Button ID ="Button1" runat ="server" OnClick ="Button1_Click" Text ="search" Width ="88px" />< br />
< asp:DropDownList ID ="DropDownList1" runat ="server" >
< asp:ListItem Selected =True ></ asp:ListItem >
< asp:ListItem > a </ asp:ListItem >
< asp:ListItem > aa </ asp:ListItem >
< asp:ListItem > ab </ asp:ListItem >
</ asp:DropDownList >
< br />
< br />
< asp:GridView ID ="GridView1" runat ="server" AllowPaging ="True" AllowSorting ="True"
AutoGenerateColumns ="False" DataKeyNames ="CustomerID" DataSourceID ="SqlDataSource1" OnSelectedIndexChanged ="GridView1_SelectedIndexChanged" AutoGenerateEditButton ="True" >
< Columns >
< asp:BoundField DataField ="CustomerID" HeaderText ="CustomerID" ReadOnly ="True" SortExpression ="CustomerID" />
< asp:BoundField DataField ="CompanyName" HeaderText ="CompanyName" SortExpression ="CompanyName" />
< asp:BoundField DataField ="ContactName" HeaderText ="ContactName" SortExpression ="ContactName" />
< asp:BoundField DataField ="Country" HeaderText ="Country" SortExpression ="Country" />
< asp:TemplateField HeaderText ="City" >
< ItemTemplate >
< asp:Label ID ="Label1" runat ="server" Text ='<%# Bind("City") % > ' Width="184px"> </ asp:Label >
</ ItemTemplate >
< EditItemTemplate >
< asp:DropDownList ID ="DropDownList2" runat ="server" SelectedValue ='<%# Bind ("City") % > ' DataSourceID="SqlDataSource1" DataTextField="City" DataValueField="City">
</ asp:DropDownList >
</ EditItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >
< asp:SqlDataSource ID ="SqlDataSource1" runat ="server" ConnectionString ="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand ="SELECT [CustomerID], [CompanyName], [ContactName], [Country], [City] FROM [Customers]"
DeleteCommand ="DELETE FROM [Customers] WHERE [CustomerID] = @CustomerID"
InsertCommand ="INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactName], [Country], [City]) VALUES (@CustomerID, @CompanyName, @ContactName, @Country, @City)"
UpdateCommand ="UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactName] = @ContactName, [Country] = @Country, [City] = @City WHERE [CustomerID] = @CustomerID" >
< DeleteParameters >
< asp:Parameter Name ="CustomerID" Type ="String" />
</ DeleteParameters >
< UpdateParameters >
< asp:Parameter Name ="CompanyName" Type ="String" />
< asp:Parameter Name ="ContactName" Type ="String" />
< asp:Parameter Name ="Country" Type ="String" />
< asp:Parameter Name ="City" Type ="String" />
< asp:Parameter Name ="CustomerID" Type ="String" />
</ UpdateParameters >
< InsertParameters >
< asp:Parameter Name ="CustomerID" Type ="String" />
< asp:Parameter Name ="CompanyName" Type ="String" />
< asp:Parameter Name ="ContactName" Type ="String" />
< asp:Parameter Name ="Country" Type ="String" />
< asp:Parameter Name ="City" Type ="String" />
</ InsertParameters >
< SelectParameters >
< asp:ControlParameter ControlID ="TextBox1" Name ="CustomerID" PropertyName ="Text"
Type ="String" ConvertEmptyStringToNull ="False" />
< asp:ControlParameter ControlID ="DropDownList1" Name ="CompanyName"
PropertyName ="SelectedValue"
Type ="String" ConvertEmptyStringToNull ="False" />
</ SelectParameters >
</ asp:SqlDataSource >
</ div >
</ form >
</ body >
</ html >
二、Default.aspx.cs代码:
protected
void
Button1_Click(
object
sender, EventArgs e)
... {
SqlDataSource1.SelectCommand = "SELECT [CustomerID], [CompanyName], [ContactName], [Country], [City] FROM [Customers] WHERE (([CustomerID] LIKE '%' + @CustomerID + '%') AND ([CompanyName] LIKE '%' + @CompanyName + '%'))";
}
... {
SqlDataSource1.SelectCommand = "SELECT [CustomerID], [CompanyName], [ContactName], [Country], [City] FROM [Customers] WHERE (([CustomerID] LIKE '%' + @CustomerID + '%') AND ([CompanyName] LIKE '%' + @CompanyName + '%'))";
}