0

編集、選択、削除が有効なグリッドビューと、新しいレコードを挿入するための詳細ビューを含むasp.net Webページがあります。各コントロールは、asp.net ajax 拡張 control-updatepanel 内に配置されます。そして、2 つのコントロールは、LinqDataSource である同じデータソースに結合されます。

新しいレコードが挿入された後、ユーザーがページを更新するまで、グリッドビューには何も表示されません。私は何か見落としてますか?誰でも助けることができますか?

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<fieldset>

<asp:UpdatePanel ID="UpdatePanel2" runat="server">       
    <ContentTemplate>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="TermLinqDataSource" AllowPaging="True" AllowSorting="True" 
        DataKeyNames="TermID">
        <Columns>
            <asp:CommandField 
                ShowSelectButton="True" />
            <asp:BoundField DataField="RowIndex" HeaderText="RowIndex" 
                InsertVisible="False" SortExpression="RowIndex" Visible="False" />
            <asp:BoundField DataField="TermID" HeaderText="Term" ReadOnly="True" 
                SortExpression="TermID" />
            <asp:BoundField DataField="StartDate" HeaderText="Start Date" 
                SortExpression="StartDate" DataFormatString="{0:d}" />
            <asp:BoundField DataField="EndDate" HeaderText="End Date" 
                SortExpression="EndDate" DataFormatString="{0:d}" />               
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />  
        </Columns>                        
    </asp:GridView>
    </ContentTemplate>
    </asp:UpdatePanel>

    <br />
    <h4>Add New Term:</h4>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:DetailsView ID="addNewTerm" runat="server" 
            AutoGenerateRows="False" DataKeyNames="TermID" 
            DataSourceID="TermLinqDataSource" DefaultMode="Insert">
            <FieldHeaderStyle Font-Bold="true" />
            <Fields>
                <asp:BoundField DataField="TermID" HeaderText="Term:" SortExpression="TermID" 
                    ReadOnly="True" />
                <asp:BoundField DataField="StartDate" HeaderText="Start Date:" 
                    SortExpression="StartDate" />
                <asp:BoundField DataField="EndDate" HeaderText="End Date:" 
                    SortExpression="EndDate" />
                <asp:CommandField ShowInsertButton="True" />
            </Fields>
        </asp:DetailsView>
    </ContentTemplate>
    </asp:UpdatePanel>
    <asp:LinqDataSource ID="TermLinqDataSource" runat="server" 
        ContextTypeName="CETMSClient.RegistraDCsDataContext" EnableDelete="True" 
        EnableInsert="True" EnableUpdate="True" TableName="Terms" 
        OrderBy="RowIndex desc" >
    </asp:LinqDataSource>
4

1 に答える 1

1

挿入後にgridviewを再度バインドする必要があると思います。msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.iteminserted.aspxにアクセスしてください

于 2012-05-08T03:26:43.383 に答える