【问题标题】:Adding Control to Control collection with Telerik使用 Telerik 将控件添加到控件集合
【发布时间】:2014-08-26 16:53:14
【问题描述】:

我第一次使用 Telerik,遇到了一个由于我的实施而无法解决的问题。我有一个 MainPage.aspx,它有一个 RadTabStrip 和一个 RadMultiPage 与之关联。在页面视图中,我有一些用户创建的控件(.ascx)页面,并已实现它们,以便在选择某个选项卡时,ASCX页面将在页面视图中显示。我一直在单独处理每个页面,现在我必须处理搜索页面功能,其中我在 RadPageLayout 中插入了一个 RadGrid,如下所示:

    <Rows>
        <telerik:LayoutRow>
            <Columns>
                <telerik:CompositeLayoutColumn Span="12">
                    <Content>
                        <telerik:RadGrid ID="rgSearchResults" Width="700px" runat="server" AllowPaging="true" AllowSorting="true">
                        </telerik:RadGrid>
                    </Content>
                </telerik:CompositeLayoutColumn>
            </Columns>
        </telerik:LayoutRow>
    </Rows>

没有任何数据绑定等,我要做的只是导航到搜索选项卡,但是当我这样做时,我得到了令人沮丧的错误“页面不能为空。Blah Blah Blah”我看过在网上发现我需要将控件添加到页面的控件集合中,但是通过我的实现,我似乎无法找到一种方法来做到这一点。我试图将它添加到 search.ascx 页面的“!IsPostBack”页面加载事件中,但我得到一个单独的错误。如果我尝试在 Main.aspx 页面中添加它,它仍然找不到它......在常规的 asp.net/C# 上从来没有遇到过这么多麻烦......请帮忙!

【问题讨论】:

    标签: c# asp.net telerik radgrid ascx


    【解决方案1】:

    您是否在用户控件上注册了 Telerik 程序集:

    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
    

    您有带有 runat=server 的表单吗? PageLayout 控件是否有其 runat=server 属性?

    我试过了,它出现了:

    联合国:

    <telerik:RadPageLayout runat="server" ID="RadPageLayout1">
        <Rows>
            <telerik:LayoutRow>
                <Columns>
                    <telerik:CompositeLayoutColumn Span="12">
                        <Content>
                            <telerik:RadGrid ID="rgSearchResults" Width="700px" runat="server" AllowPaging="true" AllowSorting="true">
                            </telerik:RadGrid>
                        </Content>
                    </telerik:CompositeLayoutColumn>
                </Columns>
            </telerik:LayoutRow>
        </Rows>
    </telerik:RadPageLayout>
    

    在主页中

    <form id="form1" runat="server">
        <asp:ScriptManager ID="Scriptmanager1" runat="server" />
        <telerik:RadTabStrip runat="server" ID="RadTabStrip1" MultiPageID="RadMultiPage1">
            <Tabs>
                <telerik:RadTab Text="first" Selected="true"></telerik:RadTab>
                <telerik:RadTab Text="second"></telerik:RadTab>
            </Tabs>
        </telerik:RadTabStrip>
        <telerik:RadMultiPage runat="server" ID="RadMultiPage1">
            <telerik:RadPageView runat="server" ID="RadPageView1" Selected="true">first page view</telerik:RadPageView>
            <telerik:RadPageView runat="server" ID="RadPageView2">
                second page view with grid
                <uc1:myControl runat="server" ID="myControl1"></uc1:myControl>
            </telerik:RadPageView>
        </telerik:RadMultiPage>
    
    </form>
    

    您还可以在此处查看如何使用动态页面视图和用户控件:http://demos.telerik.com/aspnet-ajax/tabstrip/examples/multipage/dynamic-pageview-creation/defaultcs.aspx。确保为您创建的每个动态控件添加 ID。

    【讨论】:

    • 是的,我已将所有这些设置为 runat="server",我在 Main.aspx 页面和 Search.ascx 页面上有了 Telerik 程序集。它仍然不工作......我不知道为什么,但我的假设是因为我一直在单独研究 UC,我最近在之前的构建中将网格放在 Search UC 上,然后尝试运行它它在搜索选项卡选择上中断。我已经去过那个页面,但我不想对任何东西进行逆向工程,还有别的吗?我完全迷路了……
    • 为了补充我之前的评论,我还一次又一次地构建了项目,以便它知道那里有一个网格,但我又想在项目之后添加网格已经构建,即使它再次构建,正在发生错误......
    • 清理VS临时文件,ASP临时文件,清理解决方案并重建:weblogs.asp.net/psheriff/archive/2011/11/08/…
    • 我完成了文章中的所有步骤,重新启动了 Visual Studio,清理了我的解决方案,重新构建,然后再次构建,但仍然显示页面不能为空错误在搜索选项卡选择...这是怎么回事???当我尝试在标签条上使用自定义皮肤时,我遇到了这样的问题,通过了这些确切的步骤并且它起作用了,但是对于这个错误,有一些事情正在发生,因此它无法显示该控件.. . 我不知道为什么。
    • 用户控件和标签条的生成方式可能有问题。从最简单的设置开始尝试(即在标记中添加所有内容)并开始将其移近您的设置以找到破坏它的步骤。如果我们没有完整的代码,我们就不能说更多了。
    猜你喜欢
    • 2013-03-21
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多