代码之家  ›  专栏  ›  技术社区  ›  cdonner

带有EditItemTemplate的面板DefaultButton和GridView控件

  •  2
  • cdonner  · 技术社区  · 15 年前

    我在一个带有DefaultButton面板的页面上有一个GridView控件。当用户编辑一行时,我试图让“Update”按钮使用Enter键。它和鼠标配合得很好。当我单击“Update”时,行返回到视图模式,并显示更新的值。

    当GridView不在面板中时,面板中的其他一些看似随机的按钮会触发,但我所在行的EditItemTemplate中的“Update”按钮不会触发。具体地说,页面上有一个CalendarExtender,并且该扩展程序的弹出按钮启动。完全不是我想要的。

    以下是我的加价代码的结构:

    <asp:Panel ID="Panel1" runat="server" DefaultButton="btnSubmit">
    
        <!--Form with controls-->
    
        <asp:ImageButton ID="btnWSPODateCal" runat="server" />
        <!--this button fires when I press enter while editing a grid row:-->
        <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" 
        TargetControlID="tbPODate" PopupButtonID="btnWSPODateCal" />
    
        <!--more controls-->
    
        <div class="button_row">
            <asp:ImageButton ID="btnCancel" runat="server" />
            <asp:ImageButton ID="btnSubmit" OnClick="btnSubmit_Click" />
        </div>
    </asp:Panel>
    <asp:GridView runat="server">
        <Columns>
            <asp:TemplateField>
                <EditItemTemplate>
                    <asp:ImageButton CommandName="MyUpdate" 
                        ID="btnSubmitRow" runat="server"  
                        CommandArgument="<%# ((GridViewRow) Container).DataItemIndex %>" /> 
    
    2 回复  |  直到 15 年前
        1
  •  0
  •   jWoose    15 年前

    试试这个。这只是猜测。

    <asp:GridView runat="server">
    <Columns>
        <asp:TemplateField>
            <EditItemTemplate>
                <asp:Panel ID="Panel2" DefaultButton="btnSubmitRow" runat="server">
                    <asp:ImageButton CommandName="MyUpdate" 
                        ID="btnSubmitRow" runat="server"  
                        CommandArgument="<%# ((GridViewRow) Container).DataItemIndex %>" />
                </asp:Panel>  
    

    <asp:Panel ID="Panel2" DefaultButton="btnSubmitRow" runat="server">
        <asp:GridView runat="server">
            <Columns>
            <asp:TemplateField>
                <EditItemTemplate>
                    <asp:ImageButton CommandName="MyUpdate" 
                        ID="btnSubmitRow" runat="server"  
                        CommandArgument="<%# ((GridViewRow) Container).DataItemIndex %>" />
    ...
        </asp:GridView>
    </asp:Panel>
    
    推荐文章