CheckBox 控制項新增加了兩個屬性:InputAttributes 和 LabelAttributes 。利用這兩個屬性,可以很方便地為label和input標籤添加自訂屬性,而使用 Attributes 則是不能完成這2個任務的。舉一個例子,頁面中定義一個asp:CheckBox:
<asp:CheckBox ID="cbTest" Text="CheckBox" runat="server" />
在後台代碼中使用Attributes屬性為其添加onclick事件:
cbTest.Attributes.Add("onclick", "checkBoxClick(this)");
然後瀏覽該頁面,查看頁面代碼:
<input id="cbTest" type="checkbox" name="cbTest" onclick="checkBoxClick(this);" /><label for="cbTest">CheckBox</label>
背景程式為checkbox添加了onclick事件,但是label的事件無法添加,這是就可以使用LabelAttributes屬性,為label添加事件。
cbTest.InputAttributes.Add("onclick", "checkBoxClick(this)");
cbTest.LabelAttributes.Add("onclick", "checkBoxClick(this)");
再次瀏覽該頁面,查看頁面代碼:
<input id="cbTest" type="checkbox" name="cbTest" onclick="checkBoxClick(this)" /><label for="cbTest" onclick="checkBoxClick(this)">CheckBox</label>
發現label也有了onclick事件。在上面的代碼中,我們已經使用了InputAttributes屬性為checkbox添加事件,這個屬性在此時的效果和使用Attributes屬性添加事件得到的結果是一樣的。但是他們還是會有些不同。在一些複雜的程式中,asp.net在解析aspx頁面的時候,會為checkbox添加額外的<span>標籤,此時Attributes屬性添加的onclick事件就會被添加到span中,二並非input中,所以在此時,我們需用InputAttributes這個屬性為input添加事件。