新记录不会显示在ASP.net Datagrid内部Updatepanel中

时间:2012-05-07 12:10:26

标签: asp.net webforms linqdatasource

我有一个asp.net网页,其中包含一个gridview,其中包含编辑,选择和删除功能,以及一个用于插入新记录的详细视图。每个控件都放在一个asp.net ajax扩展控件 - updatepanel中。并且两个控件绑定到同一数据源LinqDataSource。

插入新记录后,在用户刷新页面之前,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>

1 个答案:

答案 0 :(得分:1)

我认为你需要在插入后再次绑定gridview。 访问msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.iteminserted.aspx