定义: ContentPlaceHolder 控件:在 ASP.NET 母版页中定义内容区域。 通 俗的来讲,ContentPlaceHolder 控件是个容器控件,用来存放内容,但是如果它放在母板页中,那么它的内容页就需要使用Content控件来指定ContentPlaceHolder控件 (好像一个指针一样 form id=“form1” runat=“server”>母版页演示 <div> <asp:ContentPlaceHolder id=“ContentPlaceHolder1 ID=“ContentPlaceHolder1” runat=“server”> </asp:ContentPlaceHolder> </asp:Content></< ” Runat=“Server”> <asp:ContentPlaceHolder ID=“ContentPlaceHolder2” runat=“server”> </
当你使用masterpage的时候,页面内的服务端控件会自动加上 _ctl0_ContentPlaceHolder1 或者 ctl00_ContentPlaceHolder1,但什么时候是出现_ctl0 _ContentPlaceHolder1,而 又什么时候出现的是ctl00_ContentPlaceHolder1呢? 修改web.config <xhtmlConformance mode=“Legacy“/>——》_ctl0_ContentPlaceHolder1 <xhtmlConformance mode=“Transitional “/>——》ctl00_ContentPlaceHolder1 默认——》ctl00_ContentPlaceHolder1 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn
大家看到上面两张图,我分别拖入了两个DataList与ObjectDataSource控件了,又分别放到两个ContentPlaceHolder控件内,选择数据源时可以看到ObjectDataSource1 与ObjectDataSource2,但只能选择各自ContentPlaceHolder嵌套内的ObjectDataSource控件,如果content3选择content4内的ObjectDataSource2 还未有时间去看ContentPlaceHolder说明,但如果是不允许这么用,就索性选择时不列出ID名,列出来又不能选,有些多余了,当然不只是ObjectDataSource控件有这个问题,一些类似的选择 ID控件在ContentPlaceHolder内都有这个问题。 如果可以跨ContentPlaceHolder选择的话,我其实不需要拖入两个ObjectDataSource,希望VS下一个版模板功能有所改进。
页里对应的 ContentPlaceHolder 里填入内容,若有的 ContentPlaceHolder 不需要则可以把它隐藏掉而不要将其删除。 – 站点名称 –> <asp:ContentPlaceHolder id=”PlaceHolderSiteName” runat=”server”> </asp:ContentPlaceHolder > </asp:ContentPlaceHolder> <! ” runat=”server”></asp:ContentPlaceHolder> <asp:ContentPlaceHolder id=”PlaceHolderTitleAreaSeparator :ContentPlaceHolder id=”PlaceHolderNavSpacer” runat=”server”></asp:ContentPlaceHolder> <asp:ContentPlaceHolder
原因: 如果是普通情况,当然直接加一个Form就可以了,但如果是使用了master page,这个错误的真正原因是在master page中 ContentPlaceHolder被错误放置到<form> id=”ContentPlaceHolder1″ runat=”server”> </asp:ContentPlaceHolder> <asp:ContentPlaceHolder id=”ContentPlaceHolder2 ″ runat=”server”> </asp:ContentPlaceHolder> 改为: <form id=”form1″ runat=”server”> <asp:LinkButton ID id=”ContentPlaceHolder1″ runat=”server”> </asp:ContentPlaceHolder> <asp:ContentPlaceHolder id=”ContentPlaceHolder2 ″ runat=”server”> </asp:ContentPlaceHolder> </form> 一切正常。
用来对应包含与当前内容关联的 ContentPlaceHolder 的 ID啊 说白了就是去找母版页相应的ContentPlaceHolder ,然后把内容扔进那里面去 <asp:Content ID ="Content2" ContentPlaceHolderID="<em>ContentPlaceHolder</em>1" Runat="Server"> <body> 你这个是调用母版页,因为母版页中已经有了<body >标签了,所以这个子页面就不需要此标签了 ContentPlaceHolder1这个就是母版页的ID,Content2是你这个子页面的ID。 不明白可以再问 内容页ContentPlaceHolder里使用CSS 我想在内容页里放个文本框和按钮,然后让他们并排,我加了CSS不行,网上查了说内容页不能使用CSS好像,那应该怎么做才能让他们并排呢 site.master关键部分 <head> <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>
ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>
ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server ">
">
ocr.classification(img_bytes) print(res) # 识别完成 输入账户密码/验证码 input_u=driver.find_element_by_xpath('//*[@id="ContentPlaceHolder1 _txtuserid"]') input_u.send_keys('username') input_p=driver.find_element_by_xpath('//*[@id="ContentPlaceHolder1 _txtpassword"]') input_p.send_keys('password') input_cap=driver.find_element_by_xpath('//*[@id="ContentPlaceHolder1
xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>MasterPage</title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server Master_Label" runat="server" Text="母版页(Label)"></asp:Label>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
response = br.response().read() br.select_form(nr=0) br.set_all_readonly(False) br.form['ctl00$ContentPlaceHolder1 $txtFromDate']='14/11/3012' br.form['ctl00$ContentPlaceHolder1$txtToDate']='29/11/2013' br.form.set_value ([item],name='ctl00$ContentPlaceHolder1$ddlIndex') response = br.submit().read() result=response.strip 在设置表单值时,将“ctl00$ContentPlaceHolder1$txtFromDate”和“ctl00$ContentPlaceHolder1$txtToDate”的值分别改为了“14/11/3012
checkLogin();//刷新显示 }); }); }); </script> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server value="登录" id="btnLogin" />
:450px;dialogWidth:500px; center:yes;help:no;resizable:no;status:no;") var CodeText = $get('ctl00_ContentPlaceHolder1 _FormView1_CurrCodeHiddenField'); var NameText = $get('ctl00_ContentPlaceHolder1_FormView1_CurrNameTextBox items.ToArray(); } 前台js function UnitCodeSelected(source, eventArgs) { /*var unitCodeText = $get("ctl00_ContentPlaceHolder1 _FormView1_UnitCodeTextBox");*/ var CodeText = $get('ctl00_ContentPlaceHolder1_FormView1_UnitCodeTextHiddenField
上边就绪后,我们就来对页面进行分析,有点类似于 Beautiful Soup 了 image-20210309222452929 然后分析页面,我们发现,问卷主体内容都在 id="ctl00_ContentPlaceHolder1 selection1 = '//*[@id="ctl00_ContentPlaceHolder1_JQ1_question"]/div[2]/fieldset[1]/div[1]/div[2]/ul/li autoFinishForm(): # 将问卷星网站放在下面 driver.get('群里的投票地址) # 单选题 1 selection1 = '//*[@id="ctl00_ContentPlaceHolder1 driver.find_elements_by_xpath(selection1)[-1] answer_1.click() # 单选题 2 selection2 = '//*[@id="ctl00_ContentPlaceHolder1 driver.find_elements_by_xpath(selection2)[-1] answer_2.click() # 单选题 3 selection3 = '//*[@id="ctl00_ContentPlaceHolder1
| <asp:contentplaceholder id=”ContentPlaceHolder1″ runat=”server”> </asp:contentplaceholder> | <asp:ContentPlaceHolder ID=”ContentPlaceHolder2 ″ runat=”server”> </asp:ContentPlaceHolder> | (“Label1”); lbl1.Text = DateTime.Now.ToString(); Label lbl2 = (Label)this.ContentPlaceHolder2