2010-10-29 24 views
1

我向我的InsertItemTemplate添加了一個RequiredFieldValidator,它似乎工作正常。但是,我遇到的問題是,現在我無法在ListView中執行其他任何操作(如編輯或刪除項目),除非必需的字段有值。有什麼辦法可以在用戶單擊InsertItemTemplate上的'插入'按鈕或我可以執行的一些其他小技巧時手動進行驗證,以便用戶不必首先輸入值即可刪除其他內容列表?在ListView插入/編輯模板中驗證控件

感謝

回答

3

是, 設置CausesValidation屬性爲false,你不希望他們觸發驗證控件。

+0

太棒了!謝謝。 – Curtis 2010-10-29 16:24:19

+0

:)不客氣,祝你好運。 – 2010-10-29 16:34:41

4

A_Nablsi,

請提供代碼,您的解決方案打開插入新的驗證控件在斷電時編輯/更新模式或將編輯/更新驗證控件關閉時,無論是編輯和插入行處於活動狀態,同時。這個使用你的理論解決方案的代碼失敗了,並且對updateButton有一個空引用。

LinkButton updateButton = LVTasks.EditItem.FindControl("UpdateButtonTask") as LinkButton; 
updateButton.CausesValidation = false; 

的作品是增加確認團組的解決方案。

在EditItemTemplate和Update按鈕中包含ValidatorGroup =「myVGEdit」和您的Validator控件。

將ValidationGroup =「myVGInsert」與Validator控件包含在InsertItemTemplate和Insert按鈕中。

<asp:ListView ID="LVTasks" runat="server" 
    DataKeyNames="IDTask" 
    DataSourceID="LDS_LVTasks" 

    InsertItemPosition="FirstItem" 

    oniteminserting="LVTasks_ItemInserting" 
    onitemupdating="LVTasks_ItemUpdating" 
    onitemcommand="LVTasks_ItemCommand" 
    > 

    <EditItemTemplate> 
     <asp:TextBox ID="TaskUpdateTextBox" runat="server" 
      Text='<%# Bind("Task") %>' 
      TextMode="MultiLine" Rows="1" Font-Bold="true" Width="300px" 
     /> 

     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
      ErrorMessage="Please Set Task title" 
      ControlToValidate="TaskUpdateTextBox" 

      ValidationGroup="myVGUpdate" 
     /> 

       <asp:LinkButton ID="UpdateCancelButton" runat="server" 
       CommandArgument='<%#Eval("IDTask") %>' 
       CommandName="Cancel" 
       CausesValidation="False"   
       ToolTip="Cancel - Abort - No Changes"><div class="Cancel"></div></asp:LinkButton> 

       <asp:LinkButton ID="UpdateButtonTask" runat="server" 
       CommandArgument='<%#Eval("IDTask") %>' 
       CommandName="Update" 

       CausesValidation="True" 

       ValidationGroup="myVGEdit" 

       ToolTip="Save Changes - Update"><div class="Update" ></div></asp:LinkButton> 
    </EditItemTemplate> 

    <InsertItemTemplate> 
     <asp:TextBox ID="TaskInsertTextBox" runat="server" Text='<%# Bind("Task") %>' 
      TextMode="MultiLine" Rows="1" Font-Bold="true" Width="300px" 
     /> 

     <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
      ErrorMessage="Please Set Task title" 
      ControlToValidate="TaskInsertTextBox" 

      ValidationGroup="myVGInsert" 
     /> 

     <asp:LinkButton ID="CancelButton" runat="server" 
        CommandArgument='<%#Eval("IDTask") %>' 
        CommandName="Cancel" 
        CausesValidation="False"><div class="Clear" ></div></asp:LinkButton> 

       <asp:LinkButton ID="InsertButtonTask" runat="server" 
        CommandArgument='<%#Eval("IDTask") %>' 
        CommandName="Insert" 
        CausesValidation="true" 

        ValidationGroup="myVGInsert" 

        ><div class="Insert" ></div></asp:LinkButton> 

    </InsertItemTemplate> 
+0

這應該被接受爲答案! 謝謝你找時間發佈你的答案。 這正是我正在尋找的。 – Fedor 2013-08-13 12:04:01

+0

這有點舊,但非常感謝。我必須以編程方式將驗證組添加到我的母版頁用戶控件保存按鈕,然後在每個我的表單視圖模板中使用不同的驗證組。謝謝! – Seano666 2014-06-18 19:00:11

相關問題