为何我用了母版页后,页面运行时在原代码里找不到 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的子控件,该控件必须包含进入 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- tv_root.Attributes.Add("runat", "server"); 这句是在向客户端输出html的时候加的,你在这里加的runat=server是不会对服务端解析起作用的.它们会被当作纯文本发送到客户端,而不是像真正的服务端控件一样被服务器处理. --------------------编程问答--------------------
母版页中是这样的,好象没有问题哦
<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>
这样没什么问题啊。 --------------------编程问答-------------------- --------------------编程问答--------------------
我是在页面上生成treeview控件的,引用的是母版页,但是报错
类型“TreeView”的控件“tvLGB001TB”必须放在具有 runat=server 的窗体标记内。 --------------------编程问答-------------------- --------------------编程问答-------------------- 所有的页面运行后在浏览器上看到的都是标准的xhtml页面,因为浏览器只认这个。
所谓的服务器控件什么的都是针对web服务器或者编程人员来说的。 --------------------编程问答-------------------- 但是页面上查看原代码是没有runat=server 的
我要是在aspx下直接用treeview是可以的,但是在.cs下添加treeview就出现那样的错 --------------------编程问答-------------------- --------------------编程问答-------------------- 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就出现那样的错 --------------------编程问答--------------------
谁来帮帮偶 --------------------编程问答-------------------- 你用下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