2013-08-01 33 views
0

我有一個GridView,其中包含一個帶TextBox的TemplateField(永久處於編輯模式,您可能會說)。當TextBoxChanged事件觸發時,GridViewRow中的數據會自動更新到數據庫中。我正在尋找一種將RangeValidator添加到TextBox的方法,以便它不會允許GridView中同一行的值大於BoundField。基於另一個控件確定RangeValidator最大值

我有其他驗證器在這個TextBox上工作,包括一個手動設置的RangeValidator。但是,在我所有的Google搜索中,我還沒有發現任何使用RangeValidator從TextBox動態拉取的例子,所以我不確定這是否可能。如果它可以從TextBox中拉出,有沒有辦法從GridView的BoundField中獲取該值?

回答

0

想出瞭如何在GridView中完成它(仍然不知道它如何在GridView外部工作)。基本上它歸結爲增加在數據綁定部分,在那裏將要輸入的最大值(類似於值綁定到TextBox本身):

<asp:RangeValidator ID="ShareTextBoxRangeValidator" runat="server" 
    ErrorMessage="!" ControlToValidate="ShareTextBox" 
    MaximumValue='<%# Eval("Cost") %>' MinimumValue="0" 
    Display="Dynamic" ClientIDMode="Predictable" Type="Double"/> 

我發現BindEval工作同樣出色,但離開它在Eval,因爲它不會更新數據。

有關Validator和GridViews的進一步說明:如果您已將頁面的ClientIDMode設置爲Static,則必須在驗證程序和要驗證的控件上明確將其設置回可預測(或AutoID)。否則,您會收到重大違規錯誤。

相關問題