我正在开发一个ASP.NET,我有一个RadListView(Telerik)。在每个RadListView的项目里面都有一个带有两个单选按钮的RadioButtonList。我需要做的是:
我对如何做到这一点有任何想法?
这是我的代码的一部分:
<telerik:RadListView ID="rlvContracts" runat="server">
<ItemTemplate>
<fieldset style="margin-bottom: 30px;">
<table cellpadding="0" cellspacing="0">
[...]
<asp:RadioButtonList runat="server" EnableViewState="true" ID="rblContract" RepeatDirection="Horizontal">
<asp:ListItem Value="1" Text="Accept"></asp:ListItem>
<asp:ListItem Value="0" Text="I do not accept" Selected="True"></asp:ListItem>
</asp:RadioButtonList>
[...]
<!-- Custom Validator Here -->
[...]
</table>
</fieldset>
</ItemTemplate>
</telerik:RadListView>
任何帮助(甚至指向教程的链接)都是apreciated
提前致谢, 丹尼尔
答案 0 :(得分:2)
为了完成第一步,您可以遵循上面代码中发布的想法(所选RadioButton的声明性设置),也可以通过以下行执行某些操作来以编程方式设置它:
//MyRadListView is the name of the RadListView on the page
RadListView myListView = MyRadListView;
RadioButtonList myRadioButtonList = myListView.Items[0].FindControl("MyRadioButtonList") as RadioButtonList;
myRadioButtonList.SelectedIndex = 0;
如您所见,您必须通过控件的Items集合访问特定的RadListView项。一旦你有了你感兴趣的项目,你可以使用FindControl()方法,它将控件的ID作为字符串。
至于验证部分,这是一种可能的实施方式:
ASPX:
<asp:CustomValidator ID="RadioButtonListValidator" runat="server" ControlToValidate="MyRadioButtonList"
OnServerValidate="RadioButtonListValidator_ServerValidate"
ErrorMessage="Please select I Accept">
</asp:CustomValidator>
C#:
protected void RadioButtonListValidator_ServerValidate(object sender, ServerValidateEventArgs e)
{
RadListView myListView = MyRadListView;
RadioButtonList myRadioButtonList = myListView.Items[0].FindControl("MyRadioButtonList") as RadioButtonList;
myRadioButtonList.SelectedIndex = 0;
if (myRadioButtonList.SelectedValue != "1")
{
e.IsValid = false;
}
}
这应该照顾所有确保在PostBack上选择“我接受”RadioButton。