我在 ASPX 上有脚本:
<dx:ASPxButton ID="ASPxButton_PrintLetrVoit" runat="server" Text="Impression lettre de voiture(décalage)" AutoPostBack="False">
<ClientSideEvents Click="function (s, e) { e.processOnServer = false; for (var i = 0; i < Tourne.length; i++) {window.open('PrintLettreVoit.aspx?TourneId='+Tourne[i]);}}" />
</dx:ASPxButton>
在 cs 中:
public List<string> Tourne;
protected void Page_Load(object sender, EventArgs e)
{
try
{
foreach (var oItem in oOrdre_BL.GetAllLettrVoit_Tourne())
{
Page.ClientScript.RegisterArrayDeclaration("Tourne", "'"+oItem+"'");
}
......
不幸的是,我在 javascript 上遇到了错误:我遇到了错误:
Horodatage : 06/09/2012 11:23:03
Erreur : ReferenceError: Tourne is not defined
Fichier Source : http://xxxxxxx/Code/BackEnd/FaExped_BackEnd_WebSite/Ordre.aspx
Ligne : 5146
任何想法 ?
提前谢谢你
PS:当我看到生成的源代码时:
<script type="text/javascript">
//<![CDATA[
var Tourne = new Array('');
//]]>
</script>
<script type="text/javascript">
//<![CDATA[
WebForm_InitCallback();//]]>
</script>
</form>
</body>
</html>
我修改了我的代码:
<dx:ASPxButton ID="ASPxButton_PrintLetrVoit" runat="server" Text="Impression lettre de voiture(décalage)" AutoPostBack="False">
<ClientSideEvents Click="function (s, e) {
if(typeof(Tourne) !== 'undefined' && Tourne != null)
{
e.processOnServer = false;
for (var i = 0; i < Tourne.length; i++) {window.open('PrintLettreVoit.aspx?TourneId='+Tourne[i]);}
}
else
{alert ('Tous est coches');}
}" />
</dx:ASPxButton>
但是,这仍然不是一个好的解决方案,因为我不知道为什么 Tourne 是未定义的?