我對ASPX腳本:JavaScript變量沒有發現
<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未定義?
我的事情你剛纔宣佈'公開名單 Tourne;'但你需要使用之前給一個定義。(我不是一個.net開發者) –
只是一個更好的編碼風格的想法:不要插入一個完整的JavaScript函數到事件處理程序。減少到方法調用。 – reporter