2015-04-06 103 views
-1

我对JavaScript和.net fremework很新。请帮我解决这个问题。 这里是我的代码的一小部分,我正在显示一个表onclick,但我希望它显示在页面加载。修改一个函数从onclick到onload

我累了window.onload,把代码放在标记中,放在$(documen).ready()中但它们都不工作,有人请让我知道要修改什么来显示在页面加载表而不是onclick?

这里是我的代码片段:

<tr id='group11' class="group1" rel="<%# Eval("RowCount") %>"> 
    <td colspan="6" class="description first"> 
     <a href="javascript:void(0);" onclick="toggleCategory('#group11',<%# Eval("RowCount") %>);" class="control collapse">[-]</a> 
     <a href="javascript:CallDialog('<%# Eval("SummaryMessage") %>');" style= "background-color:yellow">RI [<font size="2"> <i> <%# Eval("LastRI")%> </i> </font>] 
     </a>              
    </td> 

谢谢

+0

告诉我们你是如何尝试处理onLoad事件的。 –

+0

以及您想要显示的表格在哪里? –

+0

'toggleCategory()'做些什么?假设这就是你想要的表,你需要用有效的参数调用该函数 – charlietfl

回答

0

了以往的模式,如果你想等到DOM元素已经准备好为:

document.addEventListener('DOMContentLoaded', init); 

function init(){ 
    $('myElement').text('Do Stuff with the page') 
} 

由于一边:我认为这是一个反模式来模拟你的脚本,因为你正在用onclick="toggleCategory('#group11',<%# Eval("RowCount") %>);

我的首选解决方案是始终对所有请求执行相同的脚本。

在你的情况,你可以放置一个元素在页面上每个项目和使用,代替模板rowCount时:

function toggleCategory(id, count){ 
    ... 
}; 
var count = $('#group11 .myItem').length 
toggleCategory('#group11', count) 

或者相反,你可以通过添加来自.NET服务器将数据传递给javascript它到DOM:

<body data-group11count="<%# Eval("RowCount") %>"> 
    ... 
</body> 

function toggleCategory(id, count){ 
    ... 
}; 
var count = $('body').data('group11count'); 
count = Number(count); 
toggleCategory('#group11', count)