当前位置:编程学习 > C#/ASP.NET >>

为何我用了母版页后,页面运行时在原代码里找不到 runat="server"????????晕死了

为何我用了母版页后,页面运行时在原代码里找不到 runat="server"
在母版页里有<form id="form1" runat="server">
页面也有
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"  runat="server" >
但是有个页面报错,如下:
类型“TreeView”的控件“tvLGB001TB”必须放在具有 runat=server 的窗体标记内。 
注:tvLGB001TB是我在页面上创建的TreeView,也已经给它添加了属性了tv_root.Attributes.Add("runat", "server");

该怎么解决?大家帮帮忙! --------------------编程问答-------------------- UP.... --------------------编程问答-------------------- tv_root.Attributes.Add("runat", "server")不能写吧!!!问题应该是这句!!! --------------------编程问答-------------------- 你的 Treeview 放在在 .aspx 的 Content1 中?那么你的 master 中的 ContentPlaceHolder1 必须放在 <form runat=server > 内

总之,检查你的 TreeView 是否作为 form 的子控件! --------------------编程问答-------------------- 楼上说的对,必须作为form的子控件,该控件必须包含进入 --------------------编程问答--------------------
引用 3 楼 Jinglecat 的回复:
你的 Treeview 放在在 .aspx 的 Content1 中?那么你的 master 中的 ContentPlaceHolder1 必须放在 <form runat=server > 内 

总之,检查你的 TreeView 是否作为 form 的子控件!
--------------------编程问答--------------------
引用 3 楼 Jinglecat 的回复:
你的 Treeview 放在在 .aspx 的 Content1 中?那么你的 master 中的 ContentPlaceHolder1 必须放在 <form runat=server > 内 

总之,检查你的 TreeView 是否作为 form 的子控件!
--------------------编程问答-------------------- tv_root.Attributes.Add("runat", "server"); 这句是在向客户端输出html的时候加的,你在这里加的runat=server是不会对服务端解析起作用的.它们会被当作纯文本发送到客户端,而不是像真正的服务端控件一样被服务器处理. --------------------编程问答--------------------
引用 3 楼 Jinglecat 的回复:
你的 Treeview 放在在 .aspx 的 Content1 中?那么你的 master 中的 ContentPlaceHolder1 必须放在 <form runat=server > 内 

总之,检查你的 TreeView 是否作为 form 的子控件!

母版页中是这样的,好象没有问题哦
<form id="form1" runat="server">
      <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
</form> --------------------编程问答--------------------

<form id="form1" runat="server">
<asp:TreeView ID="Tree1" runat="server" Height="400px" ImageSet="News"
                Style="left: -16px; position: absolute; top: 5px; font-size: large;" Width="160px" Font-Size="Medium" NodeIndent="10">
                <ParentNodeStyle Font-Bold="False" />
                <HoverNodeStyle Font-Underline="True" />
                <SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px"
                    VerticalPadding="0px" />
                <Nodes>
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                </Nodes>
                <NodeStyle Font-Names="Arial" Font-Size="10pt" ForeColor="Black" HorizontalPadding="5px"
                    NodeSpacing="0px" VerticalPadding="0px" />
            </asp:TreeView>
</form>

这样没什么问题啊。 --------------------编程问答--------------------
引用 3 楼 Jinglecat 的回复:
你的 Treeview 放在在 .aspx 的 Content1 中?那么你的 master 中的 ContentPlaceHolder1 必须放在 <form runat=server > 内 

总之,检查你的 TreeView 是否作为 form 的子控件!
--------------------编程问答--------------------
引用 9 楼 yangpeiyu 的回复:
C# code
<form id="form1" runat="server">
<asp:TreeView ID="Tree1" runat="server" Height="400px" ImageSet="News"
                Style="left: -16px; position: absolute; top: 5px; font-size: large;" Width="160px" Font-Size="Medium" NodeIndent="10">
                <ParentNodeStyle Font-Bold="False" />
                <HoverNodeStyle Font-Underline="True" />
                <SelectedNodeStyle…

我是在页面上生成treeview控件的,引用的是母版页,但是报错
类型“TreeView”的控件“tvLGB001TB”必须放在具有 runat=server 的窗体标记内。  --------------------编程问答--------------------
引用 3 楼 Jinglecat 的回复:
你的 Treeview 放在在 .aspx 的 Content1 中?那么你的 master 中的 ContentPlaceHolder1 必须放在 <form runat=server > 内 

总之,检查你的 TreeView 是否作为 form 的子控件!
--------------------编程问答-------------------- 所有的页面运行后在浏览器上看到的都是标准的xhtml页面,因为浏览器只认这个。
所谓的服务器控件什么的都是针对web服务器或者编程人员来说的。 --------------------编程问答-------------------- 但是页面上查看原代码是没有runat=server 的
我要是在aspx下直接用treeview是可以的,但是在.cs下添加treeview就出现那样的错 --------------------编程问答--------------------
引用 1 楼 Abcsj 的回复:
UP....
--------------------编程问答-------------------- TreeView 要放在 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"  runat="server" > </asp:Content>中 --------------------编程问答--------------------
引用 16 楼 guyan033 的回复:
TreeView 要放在 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"  runat="server" > </asp:Content>中

我在.cs页面上创建的TreeView 
                     TreeView tv_root = new TreeView()
                  tv_root.Attributes.Add("runat", "server");
                    tv_root.ID ="tv"+ str_rootTree;

                    Response.Expires = 0;
                    string strxm_name = "~/xml/" + str_rootTree + ".xml";
                    XmlDataSource xmldatasource = new XmlDataSource();
                    xmldatasource.DataFile = strxm_name;
                    tv_root.DataSource = xmldatasource;
                    tv_root.DataBind();
                    xmldatasource.EnableCaching = false;
                     this.Page.Controls.Add(tv_root);

有这个:<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1"  runat="server" >
注:我要是在aspx下直接用treeview是可以的,但是在.cs下添加treeview就出现那样的错 --------------------编程问答--------------------
引用 15 楼 Abcsj 的回复:
引用 1 楼 Abcsj 的回复:
UP.... 

谁来帮帮偶 --------------------编程问答-------------------- 你用下plackholder试试,把TreeList加这里面 --------------------编程问答-------------------- 源码里面看不到服务器的东西的
runat不能那样加 --------------------编程问答-------------------- 服务器要编译你的代码,首先检查有无runat="server"
你又在程序里动态添加,叫编译器如何处理?
编程的人,要有一点逻辑思维。

况且attributs.add添加的都是客户端的属性。 --------------------编程问答-------------------- 页面运行后本来就没有runat="server",客户端要它干嘛! --------------------编程问答-------------------- tv_root.Attributes.Add("runat", "server"); 
~
是加到客户端解析后的代码中的 --------------------编程问答-------------------- 顶,学习来了 --------------------编程问答-------------------- 可以。

请参考下面代码1(.aspx):
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<form id="formMain" runat = "server">
</form>
</asp:Content>
请参考下面代码2(.cs):
        System.Web.UI.WebControls.TreeView TreeView1 = new System.Web.UI.WebControls.TreeView();
        TreeNode RootNode = new TreeNode();
        RootNode.Text = "Father";
        RootNode.Value = "FatherValue";
        //RootNode.NavigateUrl = "Default.aspx";
        RootNode.Target = "rform";
        TreeView1.Nodes.Add(RootNode);

        TreeNode L1Node = new TreeNode();

        AddNode(RootNode, L1Node, "L1Node", "L1Value", "Default.aspx");

        TreeView1.ShowLines = true;
        ContentPlaceHolder mpContentPlaceHolder;
        mpContentPlaceHolder = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder2");
       mpContentPlaceHolder.FindControl("formMain").Controls.Add(TreeView1);
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,