Обновление / Обновление Gridview после удаления строки с использованием UpdatePanel. ASP.NET C # AJAX - PullRequest
2 голосов
/ 22 марта 2012

Я пытаюсь обновить вид сетки, чтобы после удаления из него строки он обновлялся и больше не отображал эту строку автоматически. Однако это не похоже на работу.

Пока я пробовал:

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional" >
    <ContentTemplate>
        <asp:GridView ID="BookingsGridView" runat="server" AutoGenerateColumns="False" 
            BorderColor="ForestGreen" BorderStyle="Ridge" BorderWidth="10px" 
            CellPadding="4" ForeColor="#333333" GridLines="None" 
            onrowdatabound="dgTest_RowDataBound" OnSelectedIndexChanged="Cancel_Booking">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:CommandField ShowSelectButton="true" SelectImageUrl="~/Images/Icons/Cross.png" SelectText="Cancel"/>
                <asp:BoundField DataField="Book_id" HeaderText="Book_id"/>
                <asp:BoundField DataField="Username" HeaderText="Username" />
                <asp:BoundField DataField="Client" HeaderText="Client" />
                <asp:BoundField DataField="Description" HeaderText="Description" />
                <asp:BoundField DataField="BookingDate" HeaderText="BookingDate" />
                <asp:BoundField DataField="Duration" HeaderText="Duration" />
                <asp:BoundField DataField="Location" HeaderText="Location" />
                <asp:BoundField DataField="Payment" HeaderText="Payment" />
            </Columns>
            <EditRowStyle BackColor="#7C6F57" />
            <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#546E96" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#E3EAEB" />
            <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333"/>
            <SortedAscendingCellStyle BackColor="#F8FAFA" />
            <SortedAscendingHeaderStyle BackColor="#246B61" />
            <SortedDescendingCellStyle BackColor="#D4DFE1" />
            <SortedDescendingHeaderStyle BackColor="#15524A" />
            <SelectedRowStyle CssClass="SelectedRowStyle" />
        </asp:GridView>
        <br />
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="BookingsGridView" />
    </Triggers>
</asp:UpdatePanel>

и тогда я звоню

 UpdatePanel1.Update();

после успешного удаления строки.

Почему это не работает?

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Вам необходимо снова связать GridView после удаления строки.как то так.

public void GetData_BookingsGridView
{
   .......//your code
   BookingsGridView.DataSource=dt;
   BookingsGridView.DataBind();
}

public void DeleteBookingGridView_Row()
{ 

  //code for deleting gridview rows.

  //now call GetData_BookingsGridView function to refresh GridView
  GetData_BookingsGridView();
}
0 голосов
/ 22 марта 2012

Если у вас есть метод чтения при привязке данных из базы данных к вашему сетевому представлению данных, просто снова свяжите его с методом удаления.

примерно так:

private void Read()
{
  ///binding stuff datagridview.datasource = datasource;
}


private void Delete()
{

//Your delete stuff

//call

Read(); // this will refresh your grid after deleting a record.

}

С наилучшими пожеланиями

...