[英]RadioButtons CheckedChanged event
我在页面上有 20 个单选按钮,我想知道点击了其中的哪一个。
protected void Page_Load(object sender, EventArgs e)
{
Button newBTN = new Button();
newBTN.Text = "Button 1";
PlaceHolder1.Controls.Add(newBTN);
for (int i = 0; i < 20; i++)
{
RadioButton r = new RadioButton();
r.ID = i.ToString();
r.CheckedChanged += RadioButton1_CheckedChanged;
PlaceHolder1.Controls.Add(r);
}
}
新更新的代码.. 注意:代码与上述代码无关。
public List<int> ThreadID2Treat { get { return ViewState["Checked"] == null ? null : (List<int>)ViewState["Checked"]; } set { ViewState["Checked"] = value; } }
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
var rad = (CheckBox)sender;
int threadID = int.Parse(rad.ID.ToString());
ThreadID2Treat.Add(threadID);
}
public void DeleteButton_Clicked(object sender, EventArgs e)
{
foreach (var item in ThreadID2Treat)
{
UsefulStaticMethods.DeleteThreads(item);
}
}
我怎么知道?
使用参数sender
,您可以直接引用事件源控件。
var rb = (RadioButton)sender;
如果要直接触发此事件和回发,则必须将 RadioButton 的AutoPostBack
-Property 设置为true
。
var rad = (RadioButton)sendder;
Response.Write("RadioButton Id :" + rad.Id.ToString());
你可以试试上面的。
更新:
要获取 PlaceHolder 中的所有 select 单选按钮,请确保未在单选按钮上设置 AutoPostBack。 您不需要添加 CheckChanged 事件。 “r.CheckedChanged += RadioButton1_CheckedChanged;” <= 删除。
StringBuilder stringBuilder = new StringBuilder();
foreach (var control in placeHolder1.Controls)
{
var rad = control as RadioButton;
if (rad != null)
{
if (rad.Checked)
stringBuilder.AppendLine(String.Format("Radion Button Checked : {0}", rad.ID));
}
}
Response.Write(stringBuilder.ToString());
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
if (sender is RadioButton)
{
RadioButton radioButton = (RadioButton)sender;
//Code to use radioButton's properties to do something useful.
// get the radio button by its ID
string id = radioButton.ID;
}
}
你可以试试这个。
RadioButton r = sender as RadioButton;
Response.Write(r.Id);
将发件人投射为 RadioButton:
RadioButton r = sender as RadioButton;
if(r != null)
{
//Do stuff
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.