C# 如果ListView ItemTemplate中存在导致回发的控件,那么如何获取该控件
我目前正在从事一个项目,该项目涉及从数据库中的问题列表创建一份问卷。我使用带分页的ListView控件来显示每个问题及其答案的选择。这些选项是启用自动回邮功能的单选按钮 当单击radiobutton并导致回发时,我希望获取与radiobutton关联的文本,并将其插入另一个数据库表中,该数据库表记录每个问题的回答。由于radiobutton位于listview控件内,我不知道如何处理回发。我需要帮助找到导致回发的单选按钮。我是ASP.Net新手,请帮我解决这个问题。C# 如果ListView ItemTemplate中存在导致回发的控件,那么如何获取该控件,c#,asp.net,autopostback,C#,Asp.net,Autopostback,我目前正在从事一个项目,该项目涉及从数据库中的问题列表创建一份问卷。我使用带分页的ListView控件来显示每个问题及其答案的选择。这些选项是启用自动回邮功能的单选按钮 当单击radiobutton并导致回发时,我希望获取与radiobutton关联的文本,并将其插入另一个数据库表中,该数据库表记录每个问题的回答。由于radiobutton位于listview控件内,我不知道如何处理回发。我需要帮助找到导致回发的单选按钮。我是ASP.Net新手,请帮我解决这个问题。 谢谢。RadioButton
谢谢。
RadioButton
有一个事件,您可以使用它获取所需的文本
例如:
<asp:RadioButton ID="radio1" runat="server"
OnCheckedChanged="radio1_CheckedChanged" />
void radio1_CheckedChanged(object sender, EventArgs e)
{
string text = ((RadioButton)sender).Text;
}
RadioButton
有一个事件,您可以使用它获取所需的文本
例如:
<asp:RadioButton ID="radio1" runat="server"
OnCheckedChanged="radio1_CheckedChanged" />
void radio1_CheckedChanged(object sender, EventArgs e)
{
string text = ((RadioButton)sender).Text;
}
您可以使用事件处理程序的
sender
参数。例如,在复选框中:
这适用于每个事件,您始终可以通过sender
获取对引发该事件的控件的引用。您可以使用事件处理程序的sender
参数。例如,在复选框中:
这适用于每个事件,每次我单击有关asp.net和datagrids、GridView、List等的问题时,您都可以通过sender
获得对引发该事件的控件的引用,@Tim Schmelter已经回答了它…+1每次我单击有关asp.net和datagrids的问题,GridView、List等您可以信赖的@Tim Schmelter已经回答了…+1谢谢。但是,我们处理listview内控件的CheckedChanged事件的方式与listview外控件的方式是否有区别?我问这个问题是因为我在某处读到FindControl方法在listview项模板中找不到控件。我想知道CheckedChanged的情况是否相同不CheckedChanged
是复选框
控件将调用的事件,不管它是否在列表视图中,您仍然可以将发送者
转换为复选框。如果您正在处理listview事件,例如ItemDataBound
,则此时必须使用FindControl来查找所需的复选框。否,处理事件的方式是相同的。不同之处在于,当一个控件位于另一个控件的模板(即ItemTemplate)内时,您需要使用FindControl(在本例中是在ListViewItem上)来访问它。非常感谢Alessadro和@DaveZych。成功了。你们救了我一天!谢谢。但是我们处理listview内控件的CheckedChanged事件的方式与listview外控件的方式有区别吗?我问这个问题是因为我在某处读到FindControl方法在listview项模板中找不到控件。我想知道CheckedChanged的情况是否相同不CheckedChanged
是复选框
控件将调用的事件,不管它是否在列表视图中,您仍然可以将发送者
转换为复选框。如果您正在处理listview事件,例如ItemDataBound
,则此时必须使用FindControl来查找所需的复选框。否,处理事件的方式是相同的。不同之处在于,当一个控件位于另一个控件的模板(即ItemTemplate)内时,您需要使用FindControl(在本例中是在ListViewItem上)来访问它。非常感谢Alessadro和@DaveZych。成功了。你们救了我一天!
void Check_Clicked(Object sender, EventArgs e)
{
var checkBox = (CheckBox) sender;
String text = checkBox.Text;
}