拆分和保存数据在JS数组使用ASP.NET (c#)
本文关键字:ASP NET 数组 保存 数据 JS 拆分 | 更新日期: 2023-09-27 18:06:45
我有这段代码:
(我想获得标签并将它们插入JS数组中,将在HTML页面中写入,但我不能正确地获得标签,你能告诉我什么是错的,或者帮助我这样做,我已经搜索了很多解决方案,但没有一个在这里工作,标签被逗号分割)
ASP。
private void Play(List<string> arraySrc, List<string> arrayTitle, List<string> arrayImage, List<string> arrayTags)
{
...
string[] tags = arrayTags.ToArray();
string[] split;
foreach (string item in tags)
{
if (item.IndexOf(',') != -1)
{
split = item.Split(',');
foreach (string s in split)
{
ClientScript.RegisterArrayDeclaration("arrayTags", String.Concat("'"<span class=label>", s, "</span>'" "));
}
}
ClientScript.RegisterArrayDeclaration("arrayTags", String.Concat("'"<span class=label>", item, "</span>'" "));
}
}
JS
function playList () {
disabled();
$("#img").attr("src", "image/no-music.png");
for (var i = 0; i < arraySrc.length; i++) {
$("#tab1 ul").append("<li>" + (i + 1) + ". <a href='javascript:loadMusic('"" + arraySrc[i] + "'", '"" + arrayTitle[i] + "'", '"" + arrayImage[i] + "'", '"" + arrayTags[i] + "'"); selected(" + i + ");'>" + arrayTitle[i] + "</a></li>");
};
}
function loadMusic (musica, title, image, tags) {
enabled();
var audio = $("#player");
$("#tags").empty();
$("#tags").append(tags);
$("#player").attr("src", musica);
$("#title").text(title);
$("#img").attr("src", image);
$("#tags span").addClass("label-info");
/****************/
audio[0].pause();
audio[0].load(); //suspends and restores all audio element
audio[0].play();
}
你做错了。
首先,你在循环中声明了一个javascript数组对象,这意味着你多次声明了一个同名的数组。避免这样做。
其次,你应该给你的数组分配逗号分隔的字符串值来初始化。
基本上,你在javascript中通过服务器端声明一个数组,像这样
ClientScript.RegisterArrayDeclaration("arrayName","1,2,3,4");
or
ClientScript.RegisterArrayDeclaration("arrayName","'"One'",'"Two'",'"Three'"");
因此,这个概念是,在循环中为数组创建值(命令分隔的字符串),然后在循环之后,用这个创建的值注册一个数组。
因此这样做:
private void Play(List<string> arraySrc, List<string> arrayTitle,
List<string> arrayImage, List<string> arrayTags)
{
...
string[] tags = arrayTags.ToArray();
string[] split;
string aT="arrayTags";
string aV=string.empty;
foreach (string item in tags)
{
if (item.IndexOf(',') != -1)
{
split = item.Split(',');
foreach (string s in split)
{
aV +="'""+ String.Concat("<span class=label>", s, "</span>"))+"'",";
}
}
}
aV = aV.SubString(0,av.Length-2);//drop the last trailing comma
ClientScript.RegisterArrayDeclaration(aT,aV);
}
我还没有测试过,注意字符串连接,但这是你应该做的。