<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet1.ascx" %>
TagPrefix 确定用户控件的唯一命名空间(以便多个同名的用户控件可以相互区分)。TagName 是用户控件的唯一名称(可以选择任何名称)。Src 属性是用户控件的虚拟路径,例如“MyPagelet.ascx”或“/MyApp/Include/MyPagelet.ascx”。注册了用户控件后,可以像放置普通的服务器控件那样,将用户控件标记放置在 Web 窗体页中(包括 runat="server" 属性):
<Acme:Message runat="server"/>
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Page Language="C#" %>
<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet1.ascx" %>
<html>
<body style="font: 10pt verdana">
<h3>A Simple User Control</h3>
<Acme:Message runat="server"/>
</body>
</html>
.ascx
This is a simple message user control!
<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet1.ascx" %>
<html>
<body style="font: 10pt verdana">
<h3>A Simple User Control</h3>
<Acme:Message runat="server"/>
</body>
</html>
.ascx
This is a simple message user control!
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Register TagPrefix="Acme" TagName="Message" Src="pagelet2.ascx" %>
<html>
<script language="C#" runat="server">
void SubmitBtn_Click(Object sender, EventArgs E) {
MyMessage.Text = "Message text changed!";
MyMessage.Color = "red";
}
</script>
<body style="font: 10pt verdana">
<h3>A Simple User Control w/ Properties</h3>
<form runat="server">
<Acme:Message id="MyMessage" Text="This is a custom message!" Color="blue" runat="server"/>
<p>
<asp:button text="Change Properties" OnClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
.ascx
<script language="VB" runat="server">
Public Color As String = "blue"
Public MessageText As String = "This is a simple message user control!"
</script>
<span id="Message" style="color:<%=Color%>"><%=MessageText%></span>
<html>
<script language="C#" runat="server">
void SubmitBtn_Click(Object sender, EventArgs E) {
MyMessage.Text = "Message text changed!";
MyMessage.Color = "red";
}
</script>
<body style="font: 10pt verdana">
<h3>A Simple User Control w/ Properties</h3>
<form runat="server">
<Acme:Message id="MyMessage" Text="This is a custom message!" Color="blue" runat="server"/>
<p>
<asp:button text="Change Properties" OnClick="SubmitBtn_Click" runat=server/>
</form>
</body>
</html>
.ascx
<script language="VB" runat="server">
Public Color As String = "blue"
Public MessageText As String = "This is a simple message user control!"
</script>
<span id="Message" style="color:<%=Color%>"><%=MessageText%></span>
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Register TagPrefix="Acme" TagName="Address" Src="pagelet3.ascx" %>
<html>
<script language="C#" runat="server">
void SubmitBtn_Click(Object sender, EventArgs E) {
MyLabel.Text += "<b>Shipping Address:</b> "
+ ShipAddr.Address + ", "
+ ShipAddr.City + ", "
+ ShipAddr.State + ", "
+ ShipAddr.Zip + "<br>";
MyLabel.Text += "<b>Billing Address:</b> "
+ BillAddr.Address + ", "
+ BillAddr.City + ", "
+ BillAddr.State + ", "
+ BillAddr.Zip + "<br>";
}
</script>
<body style="font: 10pt verdana">
<h3>A Simple User Control w/ Properties</h3>
<form runat="server">
<Acme:Address id="ShipAddr" Caption="Shipping Address" Address="One Microsoft Way" City="Redmond" State="WA" Zip="98052" runat="server"/>
<p>
<Acme:Address id="BillAddr" Caption="Billing Address" runat="server"/>
<p>
<asp:button Text="Submit Form" OnClick="SubmitBtn_Click" runat=server/>
</form>
<asp:Label id="MyLabel" runat="server"/>
</body>
</html>
.ascx
<script language="C#" runat="server">
public String Caption = "Address";
public String Address {
get {
return TxtAddress.Value;
}
set {
TxtAddress.Value = value;
}
}
public String City {
get {
return TxtCity.Value;
}
set {
TxtCity.Value = value;
}
}
public String State {
get {
return TxtState.Value;
}
set {
TxtState.Value = value;
}
}
public String Zip {
get {
return TxtZip.Value;
}
set {
TxtZip.Value = value;
}
}
</script>
<p>
<table style="font: 10pt verdana">
<tr>
<td colspan="6" style="padding-bottom:10">
<b><%=Caption%></b>
</td>
</tr>
<tr>
<td>
Address:
</td>
<td colspan="5">
<input id="TxtAddress" size="50" type="text" runat="server">
</td>
</tr>
<tr>
<td>
City:
</td>
<td>
<input id="TxtCity" type="text" runat="server">
</td>
<td>
State:
</td>
<td>
<input id="TxtState" size="2" type="text" runat="server">
</td>
<td>
Zip:
</td>
<td>
<input id="TxtZip" size="5" type="text" runat="server">
</td>
</tr>
</table>
<html>
<script language="C#" runat="server">
void SubmitBtn_Click(Object sender, EventArgs E) {
MyLabel.Text += "<b>Shipping Address:</b> "
+ ShipAddr.Address + ", "
+ ShipAddr.City + ", "
+ ShipAddr.State + ", "
+ ShipAddr.Zip + "<br>";
MyLabel.Text += "<b>Billing Address:</b> "
+ BillAddr.Address + ", "
+ BillAddr.City + ", "
+ BillAddr.State + ", "
+ BillAddr.Zip + "<br>";
}
</script>
<body style="font: 10pt verdana">
<h3>A Simple User Control w/ Properties</h3>
<form runat="server">
<Acme:Address id="ShipAddr" Caption="Shipping Address" Address="One Microsoft Way" City="Redmond" State="WA" Zip="98052" runat="server"/>
<p>
<Acme:Address id="BillAddr" Caption="Billing Address" runat="server"/>
<p>
<asp:button Text="Submit Form" OnClick="SubmitBtn_Click" runat=server/>
</form>
<asp:Label id="MyLabel" runat="server"/>
</body>
</html>
.ascx
<script language="C#" runat="server">
public String Caption = "Address";
public String Address {
get {
return TxtAddress.Value;
}
set {
TxtAddress.Value = value;
}
}
public String City {
get {
return TxtCity.Value;
}
set {
TxtCity.Value = value;
}
}
public String State {
get {
return TxtState.Value;
}
set {
TxtState.Value = value;
}
}
public String Zip {
get {
return TxtZip.Value;
}
set {
TxtZip.Value = value;
}
}
</script>
<p>
<table style="font: 10pt verdana">
<tr>
<td colspan="6" style="padding-bottom:10">
<b><%=Caption%></b>
</td>
</tr>
<tr>
<td>
Address:
</td>
<td colspan="5">
<input id="TxtAddress" size="50" type="text" runat="server">
</td>
</tr>
<tr>
<td>
City:
</td>
<td>
<input id="TxtCity" type="text" runat="server">
</td>
<td>
State:
</td>
<td>
<input id="TxtState" size="2" type="text" runat="server">
</td>
<td>
Zip:
</td>
<td>
<input id="TxtZip" size="5" type="text" runat="server">
</td>
</tr>
</table>
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Register TagPrefix="Acme" TagName="Login" Src="pagelet4.ascx" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs E) {
if (Page.IsPostBack) {
MyLabel.Text += "The UserId is " + MyLogin.UserId + "<br>";
MyLabel.Text += "The Password is " + MyLogin.Password + "<br>";
}
}
</script>
<body style="font: 10pt verdana">
<h3>A Login User Control</h3>
<form runat="server">
<Acme:Login id="MyLogin" UserId="John Doe" Password="Secret" BackColor="beige" runat="server"/>
</form>
<asp:Label id="MyLabel" runat="server"/>
</body>
</html>
.ascx
<script language="C#" runat="server">
public String BackColor = "white";
public String UserId {
get {
return User.Text;
}
set {
User.Text = value;
}
}
public String Password {
get {
return Pass.Text;
}
set {
Pass.Text = value;
}
}
</script>
<table style="background-color:<%=BackColor%>;font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" runat="server"/></td>
</tr>
</table>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs E) {
if (Page.IsPostBack) {
MyLabel.Text += "The UserId is " + MyLogin.UserId + "<br>";
MyLabel.Text += "The Password is " + MyLogin.Password + "<br>";
}
}
</script>
<body style="font: 10pt verdana">
<h3>A Login User Control</h3>
<form runat="server">
<Acme:Login id="MyLogin" UserId="John Doe" Password="Secret" BackColor="beige" runat="server"/>
</form>
<asp:Label id="MyLabel" runat="server"/>
</body>
</html>
.ascx
<script language="C#" runat="server">
public String BackColor = "white";
public String UserId {
get {
return User.Text;
}
set {
User.Text = value;
}
}
public String Password {
get {
return Pass.Text;
}
set {
Pass.Text = value;
}
}
</script>
<table style="background-color:<%=BackColor%>;font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" runat="server"/></td>
</tr>
</table>
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Register TagPrefix="Acme" TagName="Login" Src="pagelet5.ascx" %>
<html>
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs E) {
if (Page.IsPostBack) {
Page.Validate();
if (Page.IsValid) {
MyLabel.Text += "The UserId is " + MyLogin.UserId + "<br>";
MyLabel.Text += "The Password is " + MyLogin.Password + "<br>";
}
}
}
</script>
<body style="font: 10pt verdana">
<h3>A Login User Control</h3>
<form runat="server">
<Acme:Login id="MyLogin" BackColor="beige" runat="server"/>
</form>
<asp:Label id="MyLabel" runat="server"/>
</body>
</html>
.ascx
<script language="C#" runat="server">
public String BackColor = "white";
public String UserId {
get {
return User.Text;
}
set {
User.Text = value;
}
}
public String Password {
get {
return Pass.Text;
}
set {
Pass.Text = value;
}
}
public bool IsValid {
get {
return Page.IsValid;
}
}
</script>
<table style="background-color:<%=BackColor%>;font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" OnServerClick="Submit_Click" runat="server"/></td>
</tr>
<tr>
<td align="center" valign="top" colspan="2">
<asp:RegularExpressionValidator id="Validator1"
ASPClass="RegularExpressionValidator" ControlToValidate="Pass"
ValidationExpression="[0-9a-zA-Z]{5,}"
Display="Dynamic"
Font-Size="8pt"
runat=server>
Password must be >= 5 alphanum chars<br>
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="Validator2"
ControlToValidate="User"
Font-Size="8pt"
Display="Dynamic"
runat=server>
UserId cannot be blank<br>
</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator id="Validator3"
ControlToValidate="Pass"
Font-Size="8pt"
Display="Dynamic"
runat=server>
Password cannot be blank<br>
</asp:RequiredFieldValidator>
</td>
</tr>
</table>
<html>
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs E) {
if (Page.IsPostBack) {
Page.Validate();
if (Page.IsValid) {
MyLabel.Text += "The UserId is " + MyLogin.UserId + "<br>";
MyLabel.Text += "The Password is " + MyLogin.Password + "<br>";
}
}
}
</script>
<body style="font: 10pt verdana">
<h3>A Login User Control</h3>
<form runat="server">
<Acme:Login id="MyLogin" BackColor="beige" runat="server"/>
</form>
<asp:Label id="MyLabel" runat="server"/>
</body>
</html>
.ascx
<script language="C#" runat="server">
public String BackColor = "white";
public String UserId {
get {
return User.Text;
}
set {
User.Text = value;
}
}
public String Password {
get {
return Pass.Text;
}
set {
Pass.Text = value;
}
}
public bool IsValid {
get {
return Page.IsValid;
}
}
</script>
<table style="background-color:<%=BackColor%>;font: 10pt verdana;border-width:1;border-style:solid;border-color:black;" cellspacing=15>
<tr>
<td><b>Login: </b></td>
<td><ASP:TextBox id="User" runat="server"/></td>
</tr>
<tr>
<td><b>Password: </b></td>
<td><ASP:TextBox id="Pass" TextMode="Password" runat="server"/></td>
</tr>
<tr>
<td></td>
<td><ASP:Button Text="Submit" OnServerClick="Submit_Click" runat="server"/></td>
</tr>
<tr>
<td align="center" valign="top" colspan="2">
<asp:RegularExpressionValidator id="Validator1"
ASPClass="RegularExpressionValidator" ControlToValidate="Pass"
ValidationExpression="[0-9a-zA-Z]{5,}"
Display="Dynamic"
Font-Size="8pt"
runat=server>
Password must be >= 5 alphanum chars<br>
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="Validator2"
ControlToValidate="User"
Font-Size="8pt"
Display="Dynamic"
runat=server>
UserId cannot be blank<br>
</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator id="Validator3"
ControlToValidate="Pass"
Font-Size="8pt"
Display="Dynamic"
runat=server>
Password cannot be blank<br>
</asp:RequiredFieldValidator>
</td>
</tr>
</table>
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Page Language="C#" %>
<%@ Register TagPrefix="Acme" TagName="BookList" Src="pagelet6.ascx" %>
<html>
<body style="font: 10pt verdana">
<h3>A User Control w/ an Event</h3>
<form runat="server">
<Acme:BookList runat="server"/>
</form>
</body>
</html>
.ascx
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
void Page_Load(Object Src, EventArgs e) {
if (!Page.IsPostBack) {
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + Category.SelectedItem.Value + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
void Category_Select(Object sender, EventArgs e) {
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + Category.SelectedItem.Value + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
</script>
<table style="font: 10pt verdana">
<tr>
<td><b>Select a Category:</b></td>
<td style="padding-left:15">
<ASP:DropDownList AutoPostBack="true" id="Category" OnSelectedIndexChanged="Category_Select" runat="server">
<ASP:ListItem value="business">Business</ASP:ListItem>
<ASP:ListItem value="trad_cook">Traditional Cooking</ASP:ListItem>
<ASP:ListItem value="mod_cook">Modern Cooking</ASP:ListItem>
</ASP:DropDownList>
</td>
</tr>
</table>
<ASP:DataList id="MyDataList" BorderWidth="0" RepeatColumns="2" runat="server">
<ItemTemplate>
<table cellpadding=10 style="font: 10pt verdana">
<tr>
<td valign="top">
<img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' >
</td>
<td valign="top">
<b>Title: </b><%# DataBinder.Eval(Container.DataItem, "title") %><br>
<b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type") %><br>
<b>Publisher ID: </b><%# DataBinder.Eval(Container.DataItem, "pub_id") %><br>
<b>Price: </b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
</td>
</tr>
</table>
</ItemTemplate>
</ASP:DataList>
<%@ Register TagPrefix="Acme" TagName="BookList" Src="pagelet6.ascx" %>
<html>
<body style="font: 10pt verdana">
<h3>A User Control w/ an Event</h3>
<form runat="server">
<Acme:BookList runat="server"/>
</form>
</body>
</html>
.ascx
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
void Page_Load(Object Src, EventArgs e) {
if (!Page.IsPostBack) {
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + Category.SelectedItem.Value + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
void Category_Select(Object sender, EventArgs e) {
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + Category.SelectedItem.Value + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
</script>
<table style="font: 10pt verdana">
<tr>
<td><b>Select a Category:</b></td>
<td style="padding-left:15">
<ASP:DropDownList AutoPostBack="true" id="Category" OnSelectedIndexChanged="Category_Select" runat="server">
<ASP:ListItem value="business">Business</ASP:ListItem>
<ASP:ListItem value="trad_cook">Traditional Cooking</ASP:ListItem>
<ASP:ListItem value="mod_cook">Modern Cooking</ASP:ListItem>
</ASP:DropDownList>
</td>
</tr>
</table>
<ASP:DataList id="MyDataList" BorderWidth="0" RepeatColumns="2" runat="server">
<ItemTemplate>
<table cellpadding=10 style="font: 10pt verdana">
<tr>
<td valign="top">
<img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' >
</td>
<td valign="top">
<b>Title: </b><%# DataBinder.Eval(Container.DataItem, "title") %><br>
<b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type") %><br>
<b>Publisher ID: </b><%# DataBinder.Eval(Container.DataItem, "pub_id") %><br>
<b>Price: </b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
</td>
</tr>
</table>
</ItemTemplate>
</ASP:DataList>
| 程序代码: | [ 复制代码到剪贴板 ] |
<%@ Register TagPrefix="Acme" TagName="BookList" Src="pagelet7.ascx" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs E) {
Page.Controls.Add(new HtmlGenericControl("hr"));
Control c1 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c1).Category = "business";
Page.Controls.Add(c1);
Page.Controls.Add(new HtmlGenericControl("hr"));
Control c2 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c2).Category = "trad_cook";
Page.Controls.Add(c2);
Page.Controls.Add(new HtmlGenericControl("hr"));
Control c3 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c3).Category = "mod_cook";
Page.Controls.Add(c3);
}
</script>
<body style="font: 10pt verdana">
<h3>Creating User Controls Programmatically</h3>
</body>
</html>
.ascx
<%@ Control ClassName="Pagelet7CS" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
private String _category = "";
public String Category {
get {
return _category;
}
set {
_category = value;
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + _category + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
</script>
<span style="font: 12pt verdana">Category: <%=Category%></span>
<ASP:DataList id="MyDataList" BorderWidth="0" RepeatColumns="2" runat="server">
<ItemTemplate>
<table cellpadding=10 style="font: 10pt verdana">
<tr>
<td valign="top">
<img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' >
</td>
<td valign="top">
<b>Title: </b><%# DataBinder.Eval(Container.DataItem, "title") %><br>
<b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type") %><br>
<b>Publisher ID: </b><%# DataBinder.Eval(Container.DataItem, "pub_id") %><br>
<b>Price: </b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
</td>
</tr>
</table>
</ItemTemplate>
</ASP:DataList>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs E) {
Page.Controls.Add(new HtmlGenericControl("hr"));
Control c1 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c1).Category = "business";
Page.Controls.Add(c1);
Page.Controls.Add(new HtmlGenericControl("hr"));
Control c2 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c2).Category = "trad_cook";
Page.Controls.Add(c2);
Page.Controls.Add(new HtmlGenericControl("hr"));
Control c3 = LoadControl("pagelet7.ascx");
((Pagelet7CS)c3).Category = "mod_cook";
Page.Controls.Add(c3);
}
</script>
<body style="font: 10pt verdana">
<h3>Creating User Controls Programmatically</h3>
</body>
</html>
.ascx
<%@ Control ClassName="Pagelet7CS" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script language="C#" runat="server">
private String _category = "";
public String Category {
get {
return _category;
}
set {
_category = value;
SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='" + _category + "'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
</script>
<span style="font: 12pt verdana">Category: <%=Category%></span>
<ASP:DataList id="MyDataList" BorderWidth="0" RepeatColumns="2" runat="server">
<ItemTemplate>
<table cellpadding=10 style="font: 10pt verdana">
<tr>
<td valign="top">
<img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' >
</td>
<td valign="top">
<b>Title: </b><%# DataBinder.Eval(Container.DataItem, "title") %><br>
<b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type") %><br>
<b>Publisher ID: </b><%# DataBinder.Eval(Container.DataItem, "pub_id") %><br>
<b>Price: </b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
</td>
</tr>
</table>
</ItemTemplate>
</ASP:DataList>
用户控件使开发人员能够使用编写 Web 窗体页的相同编程技巧轻松地定义自定义控件。
作为约定,用 .ascx 文件扩展名指示这样的控件。这样可以确保用户控件文件不能作为独立的 Web 窗体页执行。
用户控件通过 Register 指令包括在另一 Web 窗体页中,该指令指定 TagPrefix、TagName 和 Src location。
注册了用户控件后,可以像普通的服务器控件那样将用户控件标记放置在 Web 窗体页中(包括 runat="server" 属性)。
在包含 Web 窗体页中将用户控件的公共字段、属性和方法提升为该控件的公共属性(标记属性)和方法。
用户控件参与每个请求的整个执行生存期,并且可以处理自己的事件,封装来自包含 Web 窗体页的一些页逻辑。
用户控件不应包含任何窗体控件,而应依靠其包含 Web 窗体页在必要时包括窗体控件。
可以使用 System.Web.UI.Page 类的 LoadControl 方法以编程方式创建用户控件。用户控件的类型由 ASP.NET 运行库决定,遵循约定文件名_扩展名。
只有当为用户控件包括了 Register 指令时,用户控件的强类型才能由包含 Web 窗体页使用(即使没有实际声明的用户控件标记)。
浙公网安备 33010602011771号