2012-05-07 12 views
0

編集、選択と削除が有効なgridviewと新しいレコードを挿入するためのdetailviewを含むasp.net Webページがあります。各コントロールは、asp.net ajax拡張control-updatepanelの中​​に置かれます。 2つのコントロールはLinqDataSourceと同じデータソースに結合されています。ASP.netで新しいレコードが表示されないUpdate Panel内のDatagrid

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

<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> 
+0

コードのコードが書かれていますか? –

+0

いいえ、私は持っていません。 – sovantha

+0

GridViewとDetailsViewの両方に1つの更新パネルを使用するとどうなりますか? – Nalaka526

答えて

1

私は、挿入後に再度gridviewをバインドする必要があると思います。 訪問msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.iteminserted.aspx

+0

ここでは、Microsoftがリンクを変更する場合の例を示します。それは過去に起こった。 –

+0

これは、DetailViewまたはLinqDataSourceのItemInsertedイベントハンドラでDataGridのDataBind()メソッドを呼び出すことで機能します。どうもありがとう。 – sovantha

+0

@sovantha:正常に機能している場合は、回答としてマークしてください。 –

関連する問題