[英]c# control names
有沒有一種方法可以控制.Net如何設置控件的Name
和ID
屬性? 我有一些單選按鈕,它們的名稱必須相同。 但是,如果我設置了單選按鈕控件的ID
屬性,它將設置Name
和ID
。 我看不到分別處理ID
和Name
。 因此,現在所有按鈕的ID都相同。
如果您認為我應該使用RadioButtonList
來實現此目的,那么您可能是對的,但是我還沒有找到在動態創建的RadioButtonList
包括表結構的方法。
謝謝
是。
從一個文本框聲明一個后代類,該類將覆蓋UniqueID和ClientID屬性。 然后,使用MyControls.Textbox(在此示例中)而不是內置文本框。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyControls
{
public class Textbox : System.Web.UI.WebControls.TextBox
{
public override string ClientID
{
get
{
return ID;
}
}
public override string UniqueID
{
get
{
return ID;
}
}
}
public class Button : System.Web.UI.WebControls.Button
{
public override string ClientID
{
get
{
return ID;
}
}
public override string UniqueID
{
get
{
return ID;
}
}
}
}
請注意,您需要在web.config中注冊控件:
<pages>
<controls>
<add tagPrefix="mycontrols" namespace="MyControls" assembly="MyAssembly" />
</controls>
</pages>
然后,您可以在標記中引用它們:
<mycontrols:TextBox id="myID" runat="server"/>
在.net中不能完全正常工作。 它們需要唯一地命名,因為這是它們將單選按鈕重新關聯到viewstate的方式。 我想問一下,為什么需要它們同名? 如果是因為您希望用戶只能從x中選擇一項,那么您想使用GroupName屬性。
如果從控件的定義中省略了runat="server"
屬性,則可以自由設置其名稱和ID。 但是,是否可以選擇取決於您的情況。
在另一種情況下,您無法自己真正控制那些控件的Name
和ID
屬性。 就是說,直到發布ASP.NET 4.0( 在此處查看更多信息)。
過去,我通過創建一個繼承自RadioButton的新控件解決了此問題,但該控件添加了一個新的GroupName屬性,該屬性用於呈現控件的名稱。 不幸的是我沒有方便的代碼,但是一個快速的Google 在codeproject上提出了類似的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.