首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequiredFieldValidator .net 2010

RequiredFieldValidator .net 2010
EN

Stack Overflow用户
提问于 2012-08-15 23:01:21
回答 2查看 569关注 0票数 0

下午所有人,

我有两个字段,我需要在用户单击提交按钮后在web表单上进行验证。这些web表单还包含验证摘要,以使用户知道错误消息。

我的代码是这样的.

代码语言:javascript
复制
     <td>                       
         <asp:TextBox ID="txtOrganiser" runat="server"  ></asp:TextBox>      
     </td>
     <td>
         <asp:RequiredFieldValidator ID="RequiredFieldVal0"
                     ControlToValidate="txtOrganiser" 
                     ErrorMessage="Meeting Organiser"
                     Text="*" 
                     runat="server" Display="None"/>
      </td>
      <td>      
         <asp:DropDownList ID="AgendaStatus" 
               runat="server" Height="24px" Width="125px"> </asp:DropDownList>        
      </td>    
      <td>
          <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
                     ControlToValidate="AgendaStatus" 
                     ErrorMessage="Agenda Status"
                     Text="*" 
                     runat="server" Display="None"/>
      </td>
      <td>
          <asp:ValidationSummary ID="ValidationSummary"
            HeaderText="You must enter a value in the following fields:"
            DisplayMode="BulletList"
            EnableClientScript="true"
            runat="server"/>
      </td>

“会议组织者”的代码运行得很好。然而,'AgendaStatus‘下拉菜单没有。我想这是因为下拉列表基本上已经有了一个默认值来提示用户选择项目?

议程下拉菜单使用以下代码...

代码语言:javascript
复制
 'Used for the Enum property on the web page for the dropdown (Agenda Template.aspx)
Private Sub BindStatus()
    AgendaStatus.DataSource = EnumHelper.ToList(GetType(AgendaStatus))

    AgendaStatus.DataTextField = "Value"
    AgendaStatus.DataValueField = "Key"
    AgendaStatus.DataBind()

    AgendaStatus.Items.Insert(0, New ListItem(" - Please Select -", "~"))
End Sub

这段代码..。

代码语言:javascript
复制
Imports Microsoft.VisualBasic
Imports SembCorp.CoreLib

Public Enum AgendaStatus
   <EnumDescription("Created")> _
   TempCreated = 1
   <EnumDescription("In Progress")> _
   InProgress = 2
   <EnumDescription("Completed")> _
   Completed = 3

End Enum

如果下拉框中没有选中的项目,则会显示错误消息...

代码语言:javascript
复制
Requested value '~' was not found.

我知道为什么会显示此错误,因为用户没有选择其中一个下拉选项。然而,我认为我可以添加RequiredFieldValidator工具来解决这个问题。这没有起作用,我也没有解决方案。

任何帮助都是提前得到的。

问候贝蒂

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-15 23:08:59

首先,您可以将AppendDataboundItems设置为true,通过这种方式,您可以在aspx标记上声明性地添加默认项:

代码语言:javascript
复制
<asp:DropDownList ID="AgendaStatus"
    AppendDataboundItems="true" 
    runat="server" Height="24px" Width="125px"> 
    <asp:ListItem Value="-1" Text=" - Please Select -"></asp:ListItem>
</asp:DropDownList>  

然后,您可以将验证器的InitialValue设置为"-1",以确保第一项不是有效的用户选项:

代码语言:javascript
复制
 <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
                 InitialValue="-1"
                 ControlToValidate="AgendaStatus" 
                 ErrorMessage="Agenda Status"
                 Text="*" 
                 runat="server" Display="None"/>
票数 1
EN

Stack Overflow用户

发布于 2012-08-15 23:09:20

从列表项值中删除"~“。还要为DropDownList设置AppendDataBoundItems="true"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11971795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档