Control' DataLoading1_gdvDataGroups_ctl01_ctl00'类型' DataControlLinkBut​​ton'必须放在带有runat = server的表单标记内

时间:2015-02-27 14:42:36

标签: c# asp.net gridview webforms

我尝试将ASP.NET gridView控件的内容导出到Excel电子表格。为此,我一直在使用this page上的代码。

当它进入RederControl(hw)行时,虽然我的代码爆炸了。我得到一个错误:

GridView must be placed inside a form tag with runat=“server” even after the GridView is within a form tag

为了解决这个问题,我找到了this answer。但是主要答案不起作用,我认为这是因为我的代码是在.ascx用户控件中。考虑到这一点,我尝试了第二高评价答案中的解决方案。

这次我收到与DataControlLinkBut​​tons相关的错误,类似于这个问题的标题。

我的gridview包含一列单元格内的超链接。在使用以下代码进行渲染之前,我尝试将它们从父控件中删除(根据该页面上的第二个答案)

List<int> gridIndexes=new List<int>();
for (int i = 1; i < gdvDataGroups.Controls[0].Controls.Count-1; i++)
{   
    gridIndexes.Add(gdvDataGroups.Controls.IndexOf(gdvDataGroups.Controls[0].Controls[i].Controls[8].Controls[1]));
    gdvDataGroups.Controls.Remove(gdvDataGroups.Controls[0].Controls[i].Controls[8].Controls[1]);
}

但它对我没有用,我也遇到了同样的错误。

有关如何处理此事的任何想法?

gridView如下(仅包含相关的第9列):

 <asp:GridView ID="gdvDataFiles" SkinID="MediumSpace" runat="server" AutoGenerateColumns="False"
                        ShowHeader="true" Width="100%" OnPageIndexChanging="gdvDataFiles_PageIndexChanging"
                        AllowPaging="True" PageSize="20">
                        <Columns>                              
                            <asp:TemplateField HeaderText="Details" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("RequestPKID") == null ? "Not available" : "View" %>'
                                        NavigateUrl='<%# Eval("RequestPKID") == null ? "" : Eval("RequestPkid", "../Pages/BOLoadDetails.aspx?fileid={0}") %>'
                                        Style="padding-top: 4px; display: block" />
                                </ItemTemplate>
                            </asp:TemplateField>                                
                        </Columns>
                        <EmptyDataTemplate>
                            No data file loads found
                        </EmptyDataTemplate>
                    </asp:GridView>

1 个答案:

答案 0 :(得分:1)

确定我需要在呈现电子表格之前禁用网格上的排序。我认为是导致问题的排序控制按钮。