三、如何:设置 ASP.NET Web 服务器控件属性
在 ASP.NET 网页中,根据所需的属性 (Property) 设置控件声明的属性 (Attribute)。
您所设置的确切属性取决于控件和属性。有关特定控件的属性的信息,请在“帮助”索引中搜索该控件类的名称(例如,“Button 类 (System.Web.UI.WebControls)”)。
下面的示例演示如何设置 TextBox 控件的 MaxLength 属性:
<asp:textbox id="TextBox1" runat=server maxlength=20 />
安全说明: TextBox 接受用户输入,这将是一个潜在的安全威胁。默认情况下,ASP.NET 网页验证用户输入是否不包括脚本或 HTML 元素。
说明: 在 Web 服务器控件中,未映射到该控件属性 (Property) 的任何属性 (Attribute) 以原样传递到浏览器。
1、如何:根据简单值或枚举设置 Web 服务器控件的属性
如果 Web 服务器控件属性的数据类型为基元类型,如 String、Boolean 或 numeric 类型,那么只需将属性值指定给属性即可设置属性值。同样,如果属性值在枚举类中定义,您可以只将该枚举指定到属性。
A、设置基于单值的属性值
将值作为文字或变量指定,如下面的示例所示:
Label1.Text = "Hello";
DataGrid1.PageSize = 5;
B、设置基于枚举的属性值
使用一个枚举值指定值。ASP.NET 可以基于属性的类型解析枚举。下面的代码示例阐释如何使用枚举设置属性:
// Uses TextBoxMode enumeration
TextBox1.TextMode = TextBoxMode.SingleLine;
// Uses ImageAlign enumeration
Image1.ImageAlign = ImageAlign.Middle;
2、如何:设置 Web 服务器控件的单位属性
Web 服务器控件的宽度、高度和类似属性是以单位设置的。单位是以对象(Unit 结构)的形式实现的,使用这些对象,您可以通过多种方式指定值和度量单位。
·设置基于单位的属性
将对 Unit 结构的引用分配给控件。
下面的代码示例演示完成这一操作的多种途径。
// Default is pixels.
TextBox1.Width = new Unit(100);
TextBox1.Width = new Unit(100, UnitType.Pixel);
TextBox1.Width = new Unit("100px");
// Centimeters
TextBox1.Width = new Unit("2cm");
TextBox1.Width = new Unit(10, UnitType.Percentage);
TextBox1.Width = new Unit("10%");
3、如何:设置 Web 服务器控件颜色属性
若要将一个 Web 服务器控件属性(例如 BackColor 属性)设置为一种颜色,您需要分配对 Color 对象的引用。
·将 Web 服务器控件属性设置为一种颜色
调用 Color 对象的 FromArgb 方法,将数值 (RGB) 传递给它,或调用 FromName,将颜色名称作为字符串传递给它。或者,您可以使用引用预定义颜色名的静态方法来分配颜色,如下例所示:
Button1.BackColor = System.Drawing.Color.FromName("Red");
// White in RGB.
Button1.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);
Button1.BackColor = System.Drawing.Color.Red;
// HTML 4.0 color.
Button1.BackColor = System.Drawing.Color.MediumSeaGreen;
4、如何:在集合中设置 Web 服务器控件属性
某些 Web 服务器控件的属性不是简单的值或对象,而是集合。例如,ListBox Web 服务器控件的单个值实现为 ListItem 对象的集合。
·设置基于集合的控件属性
实例化要使用的项,然后将其添加到控件的集合。
下面的代码示例演示如何通过将 ListItem 对象添加到 ListBox 控件的 Items 集合中,来将该对象添加到此控件中。在第一个示例中,项在添加之前是显式创建的。在第二个示例中,项的创建和添加是同时进行的。
// Create the items and then add them to the list.
ListItem li = new ListItem("Item 1");
ListBox1.Items.Add(li);
// Create and add the items at the same time.
ListBox1.Items.Add(new ListItem("Apples"));
ListBox1.Items.Add(new ListItem("Oranges"));
ListBox1.Items.Add(new ListItem("Lemons"));
5、如何:在 ASP.NET 网页中设置控件的 HTML 属性
这些示例显示如何向页面中的元素添加 HTML 属性。第一个示例演示如何以声明方式向控件中添加属性。添加到控件中、但不与该控件的属性 (Property) 对应的任何属性 (Attribute) 都传递到浏览器。
第二个示例演示如何以编程方式向 Button 控件中添加属性和样式。第三个示例演示如何以编程方式向该页的 body 标记中添加属性,这需要您首先向该标记中添加 runat="server" 和 ID 属性。
<body id="body" runat="server">
<form id="form1" runat="server">
<!-- Example1 -->
<input runat="server" id="Button1" type="button" οnmοuseοver="rollover()" οnmοuseοut="exitrollover()" />
</form>
</body>
<script runat="server">
private void Page_Load()
{
//Example 2
Button1.Attributes.Add("onclick", "alert('hello, world')");
Button1.Style.Add("background-color", "red");
//Example 3
body.Attributes["bgcolor"] = "lightblue";
}
</script>
可靠编程: 没有验证您添加到控件上的属性;键/值对按原样呈现给浏览器。
在设置一个属性时,它重写同一名称的任何现有属性。(它不修改现有属性上的值)。因此,如果希望修改属性,必须先读取它,再修改它,然后将它重新添加到控件中。
如果某一特性在控件中是通过属性表示的,则该属性优先于您进行的特性设置。例如,如果您尝试使用 value 属性设置文本,则 TextBox 控件的 Text 属性优先。