简体   繁体   English

在asp.net gridview的模板字段中单击按钮不适用于更新面板

[英]Button click in template field of asp.net gridview doesn't work with update panel

I have an update panel and a gridview inside it , each row in gridview has 2 button . 我内部有一个更新面板和一个gridview,gridview中的每一行都有2个按钮。 when I click on buttons ,update progress start running but button's event doesn't fire. 当我单击按钮时,更新进度开始运行,但是按钮的事件未触发。 this in my design code : 这在我的设计代码中:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                      <asp:Panel ID="Panel1" runat="server" ClientIDMode="Static" CssClass="radtabclass inlineDiv">
                        <telerik:RadTabStrip ID="RadTabStrip1" runat="server" Orientation="HorizontalTop" SelectedIndex="0" MultiPageID="RadMultiPage1" Skin="Vista">
                            <Tabs>
                                <telerik:RadTab Text="Docs" PageViewID="RadPageView1" />
                                ...
                            </Tabs>
                        </telerik:RadTabStrip>
                        <telerik:RadMultiPage runat="server" ID="RadMultiPage1" SelectedIndex="0">

                            <telerik:RadPageView runat="server" ID="RadPageView1">
                                <asp:GridView ID="RequestDocGridView" ShowHeaderWhenEmpty="true" ShowHeader="true" CssClass="searchresult_gridview" runat="server" AllowPaging="true" AutoGenerateColumns="False" CellPadding="4" GridLines="None" OnRowCommand="RequestDocGridView_RowCommand"
                                    AlternatingRowStyle-CssClass="AlternatingRowStyle" SelectedRowStyle-CssClass="SelectedRowStyle" EditRowStyle-CssClass="EditRowStyle" FooterStyle-CssClass="FooterStyle" RowStyle-CssClass="RowStyle" PagerStyle-CssClass="PagerStyle" HeaderStyle-CssClass="HeaderStyle" PagerSettings-Mode="NumericFirstLast">
                                    <Columns>
                                        <asp:BoundField DataField="DocumentsByCustomer.DocumentName" HeaderText=" Name" HeaderStyle-CssClass="HeaderStyle" ReadOnly="true" />
                                        <asp:CheckBoxField DataField="IsAvailable" HeaderText="Available" HeaderStyle-CssClass="HeaderStyle" ReadOnly="true" />
                                        <asp:CheckBoxField DataField="DocumentsByCustomer.IsForcible" HeaderText="Force" HeaderStyle-CssClass="HeaderStyle" ReadOnly="true" />
                                        <asp:TemplateField HeaderText="View" HeaderStyle-CssClass="HeaderStyle">
                                            <ItemTemplate>
                                                <asp:ImageButton ID="ViewDocumentImageButton" runat="server" ImageUrl="~/Images/DocumentPicture16x16.png" ToolTip="View" OnClick="ViewDocumentImageButton_Click" />
                                            </ItemTemplate>
                                        </asp:TemplateField>

                                        <asp:TemplateField >
                                            <ItemTemplate>
                                                <asp:Button ID="btnInsert" runat="server" Text="Insert" OnClick="btnInsert_Click" />
                                                <asp:Button ID="btnEdit" runat="server" Text="Edit" OnClick="btnEdit_Click" />

                                                 <asp:Button ID="InsertButton" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CommandName="Insert" runat="server" Text="Insert" />
                                                <asp:Button ID="EditButton" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CommandName="Edit" runat="server" Text="Edit" />
                                            </ItemTemplate>
                                        </asp:TemplateField>
                                    </Columns>
                                </asp:GridView>
                            </telerik:RadPageView>

                            <telerik:RadPageView runat="server" ID="RadPageView2">
                               ...
                            </telerik:RadPageView>

                        </telerik:RadMultiPage>
                    </asp:Panel>

                    <asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="1" DynamicLayout="true" AssociatedUpdatePanelID="UpdatePanel1" ClientIDMode="Static">
                        <ProgressTemplate>
                            <span class="progressspan">
                                <img src="../Images/ajax-loader.gif" alt="" />
                                <label>
                                    Please Wait . . .
                                </label>
                            </span>
                        </ProgressTemplate>
                    </asp:UpdateProgress>

                </ContentTemplate>
            </asp:UpdatePanel>

and source code : 和源代码:

           protected void RequestDocGridView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        switch (e.CommandName)
        {
            case "Insert":
              ... 

                break;
            case "Delete":

              ...

                break;

            case "Edit":
               ...

                break;

            default:
                break;
        }
    }
    protected void btnInsert_Click(object sender, EventArgs e)
    {
      ....
    }

    protected void btnEdit_Click(object sender, EventArgs e)
    {
      ....
    }

I was also facing the same problem when using asp controls inside itemtemplate of telerik controls 在telerik控件的itemtemplate中使用asp控件时,我也面临着相同的问题

Use System.EventArgs instead of just EventArgs 使用System.EventArgs而不是EventArgs

For btnInsert_Click: 对于btnInsert_Click:

 protected void btnInsert_Click(object sender,System.EventArgs e)
        {
          ....
        }

For btnEdit_Click: 对于btnEdit_Click:

protected void btnEdit_Click(object sender, System.EventArgs e)
    {
      ....
    }

通过将“ UpdatePanel”替换为“ RadAjaxPanel”来解决。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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