0

私はエンティティにlinqを使用していますが、グリッドビューを追加しましたが、編集されておらず、デバッグ時にメソッドGridView5_RowUpdating()にアクセスしません..ここでは、グリッドビューのコードです

<asp:GridView ID="GridView5" runat="server" AllowSorting="True" 
            AutoGenerateColumns="False" CellPadding="4" DataKeyNames="CustomerId" 
            DataSourceID="SqlDataSource3" ForeColor="#333333" GridLines="None" 
            onrowupdating="GridView5_RowUpdating">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
                <asp:BoundField DataField="CustomerId" HeaderText="CustomerId" 
                    InsertVisible="False" ReadOnly="True" SortExpression="CustomerId" />
                <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
                    SortExpression="FirstName" />
                <asp:BoundField DataField="LastName" HeaderText="LastName" 
                    SortExpression="LastName" />
                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
            </Columns>
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <SortedAscendingCellStyle BackColor="#FDF5AC" />
            <SortedAscendingHeaderStyle BackColor="#4D0000" />
            <SortedDescendingCellStyle BackColor="#FCF6C0" />
            <SortedDescendingHeaderStyle BackColor="#820000" />
        </asp:GridView>

必須フィールドバリデーターを削除したときに手動で挿入しようとすると、必須フィールドバリデーターが表示されます。

4

1 に答える 1

0

最初に、グリッドビューにRowEditingイベントを実装して、MSDN 定義の編集を有効にする必要があります。

行の [編集] ボタンがクリックされたときに、GridView コントロールが編集モードに入る前に発生します。

ASPX:

<asp:GridView 
        ID="gvCustomers" 
        runat="server" 
        OnRowEditing="gvCustomers_RowEditing">

コードビハインド:

protected void gvCustomers_RowEditing(object sender, GridViewEditEventArgs e)
{
    gvCustomers.EditIndex = e.NewEditIndex;
    //Re bind the grid view
}

グリッド ビューで [編集] リンクをクリックしたときにこのイベントが発生しない場合は、ページにポスト バックを妨げている検証ロジックがあることを意味します。

この問題を解決する最善の方法はValidationGroup、(グリッドビューではなく) 問題を引き起こす検証コントロールの属性を設定することです。

<div id="insertEmployee">
        <asp:TextBox ID="txtName" runat="server" ValidationGroup="Insert" />
        <asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="txtName" ErrorMessage="Name is required" ValidationGroup="Insert" />
        <asp:Button ID="btnAdd" runat="server" Text="Add" ValidationGroup="Insert" />
    </div>
于 2013-02-24T12:56:12.413 に答える