页面加载后javascript看不到html

页面加载后javascript看不到html,javascript,jquery,asp.net,pageload,page-lifecycle,Javascript,Jquery,Asp.net,Pageload,Page Lifecycle,我正在从一个数据库创建一个动态工作列表,该数据库具有基于工会类型的有条件薪资报告。为了处理条件语句,我决定在cs页面的pageload部分中构建数据集,以便输出到aspx页面上的标签。一切正常。当我试图在HTML上运行JQuery或Javascripts来折叠和扩展工作标题以揭示需求时,问题就出现了。在使用JQuery、JS和Ajaxtookit中有很多方法可以做到这一点。在静态HTML上,所有这些都像一个符咒一样工作。但是.Net在我的输出中添加了一个span标记,这会对布局造成影响,从而阻止

我正在从一个数据库创建一个动态工作列表,该数据库具有基于工会类型的有条件薪资报告。为了处理条件语句,我决定在cs页面的pageload部分中构建数据集,以便输出到aspx页面上的标签。一切正常。当我试图在HTML上运行JQuery或Javascripts来折叠和扩展工作标题以揭示需求时,问题就出现了。在使用JQuery、JS和Ajaxtookit中有很多方法可以做到这一点。在静态HTML上,所有这些都像一个符咒一样工作。但是.Net在我的输出中添加了一个span标记,这会对布局造成影响,从而阻止脚本工作。然后,我添加了一个JQ函数来删除span标记,然后运行其他脚本(所有脚本都放在页面底部,以便在加载页面后调用它们)。Document.ready或window.load都没有任何效果。似乎页面加载和页面呈现状态可能是问题所在。我怎样才能让JQ和JS在编写html后看到它?谢谢

政务司司长:

受保护的无效页面加载(对象发送方,事件参数e)
{
String strConnString96=WebConfiguration Manager.ConnectionString[“作业列表\ U ConnectionString”]。ConnectionString;
OLEDB连接con96=新的OLEDB连接(strConnString96);
OleDbCommand cmd96=新OleDbCommand(“从作业中选择*,其中(状态为“打开”)和(批准为“是”),con96);
OleDbDataAdapter da96=新的OleDbDataAdapter(cmd96);
DataTable dtJobList=新DataTable();
da96.填写(dtJobList);
con96.Close();
if(dtJobList==null | | dtJobList.Rows.Count==0)
lblJobList.Text=“目前没有职位可用。”;
if(dtJobList!=null&&dtJobList.Rows.Count>0)
{
System.Text.StringBuilder sb1=新的System.Text.StringBuilder();
int i=0;
foreach(dtJobList.Rows中的数据行)
{
字符串JobTitle=行[“作业标题”]。ToString();
字符串Func=行[“函数”]。ToString();
字符串Qual=行[“资格”]。ToString();
string ReqNum=行[“Req_Number”]。ToString();
字符串低位=行[“低位范围]。ToString();
字符串高位=行[“高位范围”]。ToString();
字符串SalType=行[“工资类型”]。ToString();
字符串Union=行[“Union”]。ToString();
i++;
sb1.附加(“+JobTitle+”基本功能“+Func+”

资格“+Qual+””); 如果(联合==“执行”| |联合==“本地6”| |联合==“C93”) { sb1.附录行(“起薪”+低+“-”+高+”(“+SalType+”)); } 其他的 { sb1.附录行(“起薪”+高+”(“+SalType+”)); } sb1.附录行(“

”); lblJobList.Text=sb1.ToString(); } } }
ASPX:


window.onload=“setCollapseExpand('CurrentOpenings','h4','');RevelControl('On');RevelControl('Off');”

您正在将window.onload设置为字符串

window.onload = "setCollapseExpand('CurrentOpenings', 'h4',''); revealControl('On'); revealControl('Off');"</script>

谢谢,但那没用。我正在使用母版页。最初,onload位于body标记中。同样的方法也适用于静态的FAQ页面。我尝试过其他扩展/折叠脚本,但没有一个像我这样处理动态输出。我甚至不能让JQ看到span标签。如果不是条件输出,我会使用listview。尝试用内联代码以这种方式处理它,但无法使eval表达式在内联代码块中工作。我已经将clientID设置为static,但这并不能阻止span标记将自身附加到我的代码中。啊!我找到了解决办法。根据.Net文档,动态生成的内容不一定严格遵守页面生命周期,这会导致时间上的一些失误。当我在body标记下面添加了一个新的内容占位符时,这增加了足够的延迟,使我的表能够在调用JS之前呈现。简单地将JS代码作为结束body标记之前的最后一个元素并没有减少它。似乎每个占位符在转到下一个占位符之前都会完全渲染。就像句子末尾的句号一样,只需稍作停顿就可以了。除非内容是由Ajax加载的,否则代码应该在加载时就在那里。
<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolderMain" runat="server">



<h1>Employment</h1>

   <div id="Employment">
    <h2>Join New England's largest retail water &amp; sewer provider!</h2>

<h2>How to Apply:</h2>

<ol><li>Submit your resume and cover letter online, please send attachments in PDF or Microsoft Word format, if not please fax to 617-989-7754 OR</li>

<li>Visit our Human Resources Department at 980 Harrison Avenue Boston, MA 02119</li></ol>

<p>We are located on several MBTA bus routes and visitors' parking is available on-site. Our office is open Monday through Friday, 8:00AM to 5:00PM.
</p>

<p>Come join our team!</p>

<h2>Current Openings</h2>

<div id="CurrentOpenings">

    <a id="On" name="On" onclick="openAll('CurrentOpenings', 'h4','');" href="#_" class="hideIfNoJS">Open All</a>
    <a id="Off" name="Off" onclick="closeAll('CurrentOpenings', 'h4','');" href="#_" class="hideIfNoJS">Close All</a>

<asp:Label ID="lblJobList" runat="server" Text="Label" />


</div>

    <script>window.onload = "setCollapseExpand('CurrentOpenings', 'h4',''); revealControl('On'); revealControl('Off');"</script>
<script type="text/javascript" src="/JScode/expandcollapse.js"></script>
</asp:Content>
window.onload = "setCollapseExpand('CurrentOpenings', 'h4',''); revealControl('On'); revealControl('Off');"</script>
$(window).on("load", function () {
    setCollapseExpand('CurrentOpenings', 'h4','');
    revealControl('On');
    revealControl('Off');
});