asp.net更新面板捕获Button点击

时间:2011-10-08 21:40:35

标签: asp.net ajax updatepanel

我有一个页面上有一个ASP.NET UpdatePanel。 UpdatePanel包含一个转发器,在转发器中是一个命令按钮。 (请参阅下面的代码示例)

第一次点击按钮时,没有任何反应。但是第二次点击同一个按钮,我就得到了我期待触发的事件。虽然我确信有一个简单的解释,但我不知道为什么会这样。任何建议都会有所帮助。

<!-- Drivers Table -->
                    <asp:UpdatePanel runat="server" ID="DriverUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
                        <ContentTemplate>    
                            <asp:HiddenField runat="server" ID="DriverErrors" />
                            <asp:Repeater ID="DriverRepeater" runat="server" OnItemDataBound="DriverRepeater_ItemDataBound" OnItemCommand="DriverRepeater_ItemCommand">
                                <HeaderTemplate>
                                    <table cellspacing="0" class="section-table">
                                        <tr>
                                            <td class="bg_mid" colspan="7"><img src="/images/sections/drivers.png" alt="Drivers" /></td>
                                        </tr>
                                        <tr>
                                            <td class="text_1 left-cell">#</td>
                                            <td class="text_1">Name</td>
                                            <td class="text_1">Date Of Birth</td>
                                            <td class="text_1">Gender</td>
                                            <td class="text_1">License #</td>
                                            <td class="text_1">Relationship</td>
                                            <td class="text_1" align="right">&nbsp;</td>
                                        </tr>
                                </HeaderTemplate>
                                <ItemTemplate>
                                        <tr id="DriverRow" runat="server">
                                            <td class="text_2 required left-cell"><asp:Label ID="DriverNumber" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "DriverNumber")%>'></asp:Label></td>
                                            <td class="text_2 required"><asp:Label ID="DriverName" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "FirstName")%>'></asp:Label></td>
                                            <td class="text_2 required"><asp:Label ID="BirthDate" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "BirthDate")%>'></asp:Label></td>
                                            <td class="text_2 required"><asp:Label ID="Gender" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Gender").ToString() == "F" ? "Female" : "Male" %>'></asp:Label></td>
                                            <td class="text_2 required"><asp:Label ID="DriversLicenseNumber" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "LicenseInformation.DriversLicenseNumber")%>'></asp:Label></td>
                                            <td class="text_2 required"><asp:Label ID="RelationshipToApplicant" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "RelationshipToApplicant")%>'></asp:Label></td>
                                            <td class="text_2 right-cell" align="right"><asp:ImageButton runat="server" ID="DriverEditButton" 
                                                ImageUrl="/images/edit.jpg" AlternateText="Edit" CommandName="Edit" CausesValidation="false" /></td>
                                        </tr>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>
                                </FooterTemplate>
                            </asp:Repeater>
                        </ContentTemplate>
                    </asp:UpdatePanel>

1 个答案:

答案 0 :(得分:0)

制作UpdatePanel Mode="Conditional"enableviewstate="true" 你不需要定义触发器,你就可以在没有它的情况下完成工作。