数据源控件的ASP.NET参数
很多数据源控件都支持ASP.NET参数。
使用ASP.NET参数可以改变 数据源控件 执行时 所执行的命令。
不同类型的数据源控件使用不同的ASP.NET参数。例如:对SqlDataSource而言,参数是ADO.NET参数(也就是使用SLQ语句的参数)。而对ObjectDataSource控件,参数是方法参数,就是业务对象方法的参数。
SqlDataSource、AccessDataSource、ObjectDataSource 都支持 以下类型的参数对象:
- Parameter对象——任意静态值
- ContrlParameter对象——控件值 或 页面的属性值
- CookieParameter对象——浏览器的Cookie值
- FormParameter对象——HTML表单中字段的值
- QueryStringParameter对象——“查询字符串”中 字段的值
- SessionParameter对象——(存储在)会话中的 项的值
示例
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub ddlCategory_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlCategory" DataSourceID="sdsCategory" runat="server"
DataTextField="name" DataValueField="id" OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" />
<asp:Button ID="btnSelect" Text="提交" runat="server" />
<asp:GridView ID="gv1" runat="server" DataSourceID="sdsMovies" />
</div>
<asp:SqlDataSource ID="sdsCategory" runat="server"
ConnectionString="data source=.\sqlexpress;integrated security=true;user instance=true;attachdbfilename=|datadirectory|mydatabase.mdf"
SelectCommand="select id,name from moviecategories" />
<asp:SqlDataSource ID="sdsMovies" runat="server"
ConnectionString="data source=.\sqlexpress;integrated security=true;user instance=true;attachdbfilename=|datadirectory|mydatabase.mdf"
SelectCommand="select title,director from movies where categoryId=@Id">
<SelectParameters>
<asp:ControlParameter Name="id"
Type="Int32"
ControlID="ddlCategory" />
</SelectParameters>
</asp:SqlDataSource>
</form>
</body>
</html>