2014-11-20 3 views
0

Я использую следующий код:Почему мой массив javascript не регистрируется должным образом через ASP.NET?

for (int i = 0; i < 147; i++) 
{ 
    if (!(array[i].Equals(""))) 
    { 
     Page.ClientScript.RegisterArrayDeclaration("Stringarray", array[i]); 
    } 
    else 
    { 
     break; 
    } 
} 

код выполняется правильно, но затем, если я пытаюсь получить его на свой файл JavaScript, я получаю ошибку, что StringArray не определена, когда я делаю это Ассигнационный

var arlene2 = Stringarray; 

Я выполняю назначение в части дизайна и скрипта файла, я не пытаюсь использовать его на другой странице, чтобы понять, что может не получиться. Эта функция работала над прошлым, поэтому я не уверен, что waht может заставить массив не регистрироваться должным образом, возможно, я что-то упустил, потому что это все, что у меня есть в моем коде, связанное с массивом, который я хочу зарегистрировать, за исключением факт создания его на переменном массиве, который я проверил, он сделан правильно, поэтому это не должно быть проблемой.

Я также установить это в коде:

<asp:HiddenField ID="Stringarray" runat="server"/ > 

Но это ничего не меняет, где это на код или нет.

+0

надеюсь, что это [ссылка] (http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerarraydeclaration%28v=vs.110%29.aspx) help вы. –

ответ

0

Вы сначала должны построить одну строку, содержащую элементы массива, например:

string[] array = new[] {"a", "b", "", "c"}; 
string arrayAsString = 
"\"" 
+ string.Join("\", \"", array.Where(s=>!string.IsNullOrEmpty(s)).ToArray()) 
+ "\""; 

Это создает строку, такие как: "a", "b", "c"

Тогда вы можете вызвать RegisterArrayDeclaration() с этим значением:

ClientScript.RegisterArrayDeclaration("Stringarray", arrayAsString); 
Смежные вопросы