我有几个更新面板,一个包含一个gridview,另一个包含一个detailsview。我无法在detailsview中获得按钮才能触发gridview更新面板的更新。我已经尝试了几件事(也可以通过c#来做。)但是,这就是我现在所拥有的...有什么建议吗? [...我需要“ confirmButton”来触发“ 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>
最佳答案
尝试做
ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(this.confirmButton);
请参阅this ASP.net forum
要么
在您的按钮上,单击调用
SelectCarUP.Update()
后的代码内的事件处理程序。它应该更新SelectCarUP
面板。有关更多信息,请参考article on MSDN。要么
在后面的代码中,您可以为此按钮添加触发器(对此不确定)
SelectCarUP.Triggers.Add(new AsyncPostBackTrigger()
{
ControlID = confirmButton.UniqueID,
EventName = "Click"
});
希望这对您有用。