Có, hãy xem giao diện IAttributeAccessor. đối tượng ASP.NET UserControl thực hiện rõ ràng giao diện này. Điều này cho phép bất kỳ thuộc tính nào được thêm trực tiếp vào điều khiển trong đánh dấu sẽ được chuyển đến bộ sưu tập thuộc tính phía máy chủ.
Lưu ý rằng việc triển khai mặc định trên UserControl không thể ghi đè nhưng viết và đọc từ bộ sưu tập thuộc tính nội bộ của nó.Để làm cho những thuộc tính này sang HTML trong điều khiển người dùng của bạn, làm một cái gì đó như thế này trong đánh dấu:
<div runat="server" ID="pnlOutermostDiv">
// control markup goes here
</div>
sau đó trong code-behind của điều khiển người dùng làm điều gì đó như thế này:
protected override void OnPreRender(EventArgs e)
{
foreach (string key in Attributes.Keys)
{
pnlOutermostDiv.Attributes.Add(key, Attributes[key]);
}
base.OnPreRender(e);
}
Bây giờ khi bạn sử dụng sự kiểm soát như thế này:
<my:TextBox runat="server" extraproperty="extravalue" />
Nó sẽ làm như thế này:
<div id="ctl00_blablabla_blablabla" extraproperty="extravalue">
// rendered control HTML here
</div>
Ảnh .ascx của bạn trông như thế nào? –