<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<title>Binding a Parameterized Select to a DataGrid Control</title>
<link rel="stylesheet" href="/shared/netdemos.css">
<script language="C#" runat="server">
OleDbConnection conn;
protected void Page_Load ( Object Src, EventArgs E ) {
conn = new OleDbConnection ( "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=|DataDirectory|dbtutor.mdb" );
if ( !IsPostBack ) {
OleDbDataAdapter cmd = new OleDbDataAdapter ( "SELECT DISTINCT ProductType FROM Products", conn );
DataSet ds = new DataSet ( );
cmd.Fill ( ds, "ProductTypes" );
mySelect.DataSource= ds.Tables [ "ProductTypes" ].DefaultView;
mySelect.DataBind ( );
}
}
public void getProducts ( Object sender, EventArgs E ) {
string selectCmd = "SELECT ProductImageURL, ProductCode, ProductName, ProductDescription, UnitPrice FROM Products WHERE ProductType = @ProductType";
OleDbDataAdapter cmd = new OleDbDataAdapter ( selectCmd, conn );
cmd.SelectCommand.Parameters.Add ( new OleDbParameter ( "@ProductType", OleDbType.VarChar, 20 ) );
cmd.SelectCommand.Parameters [ "@ProductType" ].Value = mySelect.Value;
DataSet ds = new DataSet ( );
cmd.Fill ( ds, "Products" );
myDataGrid.DataSource= ds.Tables [ "Products" ].DefaultView;
myDataGrid.DataBind ( );
}
</script>
<body>
<div class="header"><h2>Binding a Parameterized Select to a DataGrid Control</h2></div>
<hr size=1 width=92%>
<center>
<form runat="server">
<p>Select Product Type: <select id="mySelect" datatextfield="ProductType" runat="server" />
<input type="submit" onServerClick="getProducts" value="Get Products" runat="server" /><p>
<div align="center">
<asp:datagrid id="myDataGrid" runat="server"
width="90%" cellpadding=3 font-size="10pt"
headerstyle-font-size="10pt"
headerstyle-backcolor="lightsteelblue"
headerstyle-font-bold
headerstyle-height=25
enableviewstate=false
autogeneratecolumns=false >
<columns>
<asp:templatecolumn headertext="Image">
<itemTemplate>
<img align="top" width=75 src='<%# Eval ( "ProductImageURL" ) %>' >
</itemTemplate>
</asp:templatecolumn>
<asp:boundcolumn headertext="StockCode"
datafield="ProductCode" />
<asp:boundcolumn headertext="Model"
datafield="ProductName" />
<asp:boundcolumn headertext="Description"
datafield="ProductDescription" />
<asp:boundcolumn headertext="Price"
datafield="UnitPrice"
dataformatstring="{0:c2}"
itemstyle-horizontalalign = "right" />
</columns>
</asp:datagrid>
</div>
</form>
</center>
<hr size=1 width=92%>
<!-- #include virtual="~/shared/viewsrc.inc" -->
</body>
</html>