Reputation: 634
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>
Upvotes: 1
Views: 3051
Reputation: 9680
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.
Upvotes: 3