从vb.net中的代码调用javascript代码

时间:2015-06-18 10:17:03

标签: javascript asp.net vb.net

我正在使用asp.net和VB.Net开展一个Web项目。 我有一个循环àjavascript代码让我们说它是:

Do While Not oActivite.eof
strScript = "<script type='text/javascript'>"
strScript = strScript + "alert(" + strActiviteId + ");"
strScript = strScript + "</script>"
Loop
ScriptManager.RegisterStartupScript(Me.Page, GetType(String), "tmp", strScript, False)

strScript是一个字符串 而strActiviteId是一个变量,它在每个循环中都会发生变化。

当页面加载时,我只会收到第一个strActiviteId值的警报。 我想要的是:

Alert(strActiviteIdFirstLoop);

Alert(strActiviteIdSecondtLoop);
...

但问题不止于此,我有一个更大的脚本而不是警报,一个jQuery脚本在td前添加一个包含span和输入的div。

和我想要的是附加到div id strActiviteId变量,之后我会在id中获得具有相同strActiviteId值的div,但是当我做了你告诉我的时候,现在我在每个复选框前面得到三个div

这是我在strScript中添加的jQuery代码:

$("#ctl00_indexBody_ID_ACTIVITE tbody tr td").after("
<span id='ctl00_indexBody_label1' >Tarif : </span> 
<input type='TEXT' 
onchange='ContenuModifier();' 
style='width: 270px;' id='N_PRIX' 
name='N_PRIX' onfocus='BeginSaisie(this,'99999')'
onblur='EndSaisie(this,'99999')' 
onkeypress=';CtrlSaisie(event,this,'99999')' maxlength='5' 
class='user_access_email bootstrapped-input input-text input-block-level         input-xlarge'>
");

我希望这是可以理解的,谢谢你的帮助。

Ps:eof是一个内置方法,当oActivite中没有数据时返回false,这是我之前填充的对象。

1 个答案:

答案 0 :(得分:1)

第一行:

strScript = "<script type='text/javascript'>"

重置每个循环中的脚本值。并且只在do while循环之后注册脚本。只会渲染最后一个脚本值。

试试这个:

strScript = "<script type='text/javascript'>"
Do While Not oActivite.eof
strScript += "alert(" + strActiviteId + ");"
Loop
strScript += "</script>"
ScriptManager.RegisterStartupScript(Me.Page, GetType(String), "tmp", strScript, False)

那就是说,你应该考虑根据循环次数使用StringBuilder来减少字符串实例化。