简体   繁体   English

必填字段验证器不适用于中继器控件中的下拉列表

[英]Required field validator not working for dropdownlist in repeater control

I have a drop down list in a repeater.我在转发器中有一个下拉列表。 I am trying to add a required field validator to it.我正在尝试向其添加必填字段验证器。

The aspx code is: aspx 代码是:

<asp:Repeater ID="myRepeter" runat="server" OnItemDataBound="myRepeter_ItemDataBound">
    <ItemTemplate>
        <asp:DropDownList ID="ddl_Name" runat="server" DataTextField="value" DataValueField="key" ></asp:DropDownList>                         
        <asp:RequiredFieldValidator ID="rfv_Name" ControlToValidate="ddl_Name" InitialValue="0" runat="server" ErrorMessage="Please select a Name" ValidationGroup="valgrp_Name" ForeColor="Red"></asp:RequiredFieldValidator>
    </ItemTemplate>
</asp:Repeater>

I also tried the same from code behind:我也从后面的代码中尝试了同样的方法:

protected void myRepeter_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    foreach(RepeaterItem item in myRepeter.Items)
    {
        DropDownList NametList = item.FindControl("ddl_Name") as DropDownList;

        RequiredFieldValidator validator = item.FindControl("rfv_Name") as RequiredFieldValidator;
                    
        validator.ControlToValidate = NametList .ID;
        validator.ValidationGroup = "valgrp_Name";
    }
}

Please help请帮忙

Why are you looping through your repeater inside the databound event?你为什么在数据绑定事件中循环你的转发器? It will automatically loop.它会自动循环。 Try using e.Item.FindControl instead.尝试使用 e.Item.FindControl 代替。

                 DropDownList NametList = e.Item.FindControl("ddl_Name") as DropDownList;

            RequiredFieldValidator validator = e.Item.FindControl("rfv_Name") as RequiredFieldValidator;

            validator.ControlToValidate = NametList.ID;
            validator.ValidationGroup = "valgrp_Name";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM