转发器内的范围验证器

时间:2013-07-31 20:01:25

标签: c# asp.net .net-3.5 repeater validation

我有一个转发器,它显示数据库表中的键值对。表中的某些字段具有最小/最大限制。如何向转发器添加范围验证器,并能够为不同的字段使用不同的范围?

例如,某些表字段为:

空闲时间:20(最小10,最多40)

取件时间:60(最少3,最多90)

当显示页面时,它显示“空闲时间”(标签)和文本框中的20,嵌套行是“拾取时间”(标签),文本框中是60。我需要阻止用户在空闲时间输入80或5,但80或5对Pcikup时间有效。

<ItemTemplate>
    <tr>
        <td style="vertical-align:top" class="BoldSmall">
            <asp:Label runat="server" ID="lblName" Text='<%# Eval("GLOBALCONFIGNAME")%>' />
        </td>
        <td style="vertical-align:top" class="BoldSmall">
            <asp:TextBox runat="server" ID="tbValue" CssClass="NormalSmall" Text='<%# Eval("GLOBALCONFIGVALUE")%>' Width="140" />
        </td>
    </tr>
</ItemTemplate>

对于文本框“tbValue”我需要添加范围验证器,但范围会根据我在转发器中显示的表的哪一行而改变。

(例如,转发器的第一项具有“空闲时间”作为globalconfigname,20作为globalconfigvalue;下一项具有“Pickup Time”作为globalconfigname,60作为globalconfigvalue,...)

感谢。

1 个答案:

答案 0 :(得分:1)

在RangeValidator控件上数据绑定到MinimumValue和MaximumValue。

<asp:RangeValidator ControlToValidate="tbValue" MinimumValue='<%# Eval("MinValue") %>' MaximumValue='<%# Eval("MaxValue") %>' Type="Integer" Text="The value is not within the acceptable range!" runat="server" />