简体   繁体   中英

ASP.NET Refreshing UpdatePanel OnClientClick

I have a couple of update panels, one containing a gridview and another containing a detailsview. I have not been able to get a button in the detailsview to be able to trigger an update of the gridview update panel. I have tried several things (doing it from c# would be ok too..) however here is what I have now... any suggestions? [...I need "confirmButton" to trigger update in "SelectCarUP"]

<asp:UpdatePanel ID="SelectCarUP" runat="server">
  <ContentTemplate>
    <asp:GridView ID="VehiclesGridView" runat="server" AllowPaging="True" 
        AllowSorting="True" DataSourceID="VehiclesEDS" 
        AutoGenerateColumns="False" 
        onselectedindexchanged="VehiclesGridView_SelectedIndexChanged" 
        BackColor="White" BorderColor="#999999" 
        BorderStyle="None" BorderWidth="1px" 
        CellPadding="3" GridLines="Vertical" ShowHeaderWhenEmpty="True">
        <AlternatingRowStyle BackColor="#DCDCDC" />
        <Columns>
           <asp:TemplateField ShowHeader="False">
              <ItemTemplate>
                 <asp:LinkButton ID="GVSelectButton" runat="server" 
                     CausesValidation="False" 
                     CommandName="Select" Text="Select"></asp:LinkButton>
              </ItemTemplate>
           </asp:TemplateField>
           <asp:BoundField DataField="CarNum" HeaderText="Car" ReadOnly="True" 
               SortExpression="CarNum" />
           <asp:BoundField DataField="CurrPassengers" HeaderText="Passengers" 
               ReadOnly="True" SortExpression="CurrPassengers" />
           <asp:BoundField DataField="MaxPassengers" HeaderText="Capacity"  
               ReadOnly="True" SortExpression="MaxPassengers" />
           <asp:BoundField DataField="Status" HeaderText="Status" 
               ReadOnly="True" SortExpression="Status" />
           <asp:BoundField DataField="StartAdd" HeaderText="Pick-Up Address" 
               ReadOnly="True" SortExpression="StartAdd" />
           <asp:BoundField DataField="EndAdd" HeaderText="Drop-Off Address" 
               ReadOnly="True" SortExpression="EndAdd" />
           <asp:BoundField DataField="AvgRideTime" HeaderText="Avg. Ride Time" 
               ReadOnly="True" SortExpression="AvgRideTime" />
        </Columns>
        <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
        <HeaderStyle BackColor="#004812" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#999999" ForeColor="Black" 
           HorizontalAlign="Center" />
        <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
        <SelectedRowStyle BackColor="#C6940D" Font-Bold="True" 
           ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#F1F1F1" />
        <SortedAscendingHeaderStyle BackColor="#C6940D" />
        <SortedDescendingCellStyle BackColor="#CAC9C9" />
        <SortedDescendingHeaderStyle BackColor="#9F770B" />
     </asp:GridView>
  </ContentTemplate>
</asp:UpdatePanel>
<asp:Table ID="Table1" runat="server" CssClass="DefaultTable">
   <asp:TableRow runat="server">
       <asp:TableCell runat="server" Width="50%" 
           VerticalAlign="Top" HorizontalAlign="Left">
           <asp:UpdatePanel ID="detailsUP" runat="server" 
                UpdateMode="Always" ChildrenAsTriggers="True">
              <ContentTemplate>
                  <!--
                     <asp:Label ID="label1" runat="server" 
                        Text="Car To Dispatch: " CssClass="DefaultLabel">
                     </asp:Label>
                     <asp:DropDownList ID="CarsDDL" runat="server"
                        DataSourceID="VehiclesEDS" 
                        DataMember="CarNum" DataTextField="CarNum"
                        AppendDataBoundItems="True" Font-Bold="True">
                           <asp:ListItem Selected="True" Text="-">
                           </asp:ListItem>
                      </asp:DropDownList>
                  -->
                  <asp:DetailsView ID="RideToAssignDV" runat="server"
                      Height="400px" Width="400px" AutoGenerateRows="False"
                      BackColor="White" BorderColor="#999999" 
                      BorderStyle="None" BorderWidth="1px" 
                      CellPadding="3" GridLines="Vertical">
                        <AlternatingRowStyle BackColor="#DCDCDC" />
                        <EditRowStyle BackColor="#008A8C" Font-Bold="True"
                           ForeColor="White" />
                        <Fields>
                            <asp:BoundField DataField="AssignedCar" 
                                HeaderText="Car"             
                                SortExpression="AssignedCar" NullDisplayText="---" />            
                            <asp:BoundField DataField="Name" HeaderText="Name" 
                                SortExpression="Name" NullDisplayText="---" />
                            <asp:BoundField DataField="Phone" HeaderText="Phone" 
                                SortExpression="Phone" NullDisplayText="---" />
                            <asp:BoundField DataField="NumPatrons" HeaderText="Size" 
                                SortExpression="NumPatrons" NullDisplayText="---" />                
                            <asp:BoundField DataField="PickupAddress" 
                                HeaderText="Pickup Address" 
                                SortExpression="PickupAddress" NullDisplayText="---" />
                            <asp:BoundField DataField="DropoffAddress" 
                                HeaderText="Drop-Off Address" 
                                SortExpression="DropoffAddress" 
                                NullDisplayText="---" />
                            <asp:BoundField DataField="CreatedBy" 
                                HeaderText="Created By" 
                                SortExpression="CreatedBy" NullDisplayText="---" />
                            <asp:BoundField DataField="TimeOfCall" 
                                HeaderText="Call Time" 
                                SortExpression="TimeOfCall" ReadOnly="True"
                                NullDisplayText="---" />
                        </Fields>
                        <FooterStyle BackColor="#CCCCCC" ForeColor="Black"
                            BorderStyle="Inset" BorderColor="#C6940D"
                            HorizontalAlign="Center" Height="25px" />
                        <FooterTemplate>
                            <asp:Button ID="confirmButton" runat="server"
                                Text="Confirm" ForeColor="Green" 
                                HorizontalAlign="Center" OnClick="confirmButton_Click"
                                OnClientClick="refreshGV();"/>
                            <asp:Button ID="cancelButton" runat="server" Text="Cancel"
                                ForeColor="Red" HorizontalAlign="Center" 
                                OnClick="cancelButton_Click"
                                OnClientClick="displayTopTen();" />
                        </FooterTemplate>
                        <HeaderStyle BackColor="#004812" Font-Bold="True" />
                        <PagerStyle BackColor="#999999" ForeColor="Black" />
                        <RowStyle BackColor="#EEEEEE" ForeColor="Black" />                            
                 </asp:DetailsView>
          </ContentTemplate>
     </asp:UpdatePanel>
</asp:TableCell>

<script type="text/javascript">
function refreshGV() {
             __doPostBack("<%= SelectCarUP.ClientID %>", "");
         }    
</script>

Try doing

ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(this.confirmButton);

Refer this ASP.net forum

OR

On your button click event handler inside codebehind call SelectCarUP.Update() It should update the SelectCarUP panel. For more info refer article on MSDN .

OR

In code behind you can add trigger for this button (not sure about this)

SelectCarUP.Triggers.Add(new AsyncPostBackTrigger()
{
    ControlID = confirmButton.UniqueID,
    EventName = "Click"
});

Hope this works for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM