关于页面传递值的问题~(值的个数是不确定的)
我在做一个音乐网站,a页面上有一个datalistdatalist的datakeyfield是歌曲id,
datalist中第一列放的是checkbox,第二列绑定的是歌曲名
外面有一个播放按钮btnSubmit
我现在想实现:当用户复选好想听的歌,点击btnSubmit后跳转到b页面
请问怎么把数据(用户选的歌曲名)传递给b页面
js应该可以实现,不知道哪位有类似的代码
(不使用js的代码也可以,最好简单些的,不要特别复杂
实在不行给点思路也行~)
麻烦发上来看一下,在此先谢~ --------------------编程问答-------------------- 将所有选中的CheckBox的值(要绑定歌曲ID)做成一个字符串(每个歌曲id之间用特殊字符分割),传到b页面,然后取参数,去出来的参数再用 参数.Split('你说使用的特殊分隔符');
这样就能将一个个的ID得到了。 --------------------编程问答-------------------- Seesion
Cookie
参数形式
都行啊
--------------------编程问答-------------------- 在a页面,如果歌曲被选中则添加到一个数组中,最后将数组传到b界面 --------------------编程问答-------------------- 这个我以前做过,
我的思路就是
把选中的id连接成一个字符串 ,
id+=id+‘,’
用一个逗号连接,
把这个连接的字符串传第过去,
在接收界面用split函数按‘,’把他切隔出来放到一个数组中,在做处理
或是
string listId = Request["id"].ToString();
listId = listId.Substring(0,listId.Length - 1);
string strSql = "select * from O_ShouldList where ListID in (" + listId + ")";
这样也行
--------------------编程问答-------------------- 思路差不多啊,另外一种,
如果在a界面内选中歌曲就将数据库中对应的,某个属性值设置为true,在b界面内直接查找true的歌曲就行
只是不知道这样影响速度不 --------------------编程问答-------------------- 1.可以放到session里面,用数组就可以
2.可以做成一个字串 "id1;id2;id3....",在b页面接到querystring后,用string.split(';')将各个id拆分开来 --------------------编程问答--------------------
Session
--------------------编程问答-------------------- 放在session 里 List<string> ids --------------------编程问答-------------------- 如果在服务器端处理就放在session里,随便放在一个容器里就行
如果用JS,就拼成一个串放在URL里,最后用split处理一下. --------------------编程问答-------------------- 谢谢上面几位,大概意思我懂,因为是第一次做,所以具体代码怎么写不清除,脑子有点混乱~ --------------------编程问答-------------------- 来晚了 --------------------编程问答-------------------- 直接js操作Cookie
还能在播放列表里进一步操作 --------------------编程问答-------------------- SESSION --------------------编程问答-------------------- 一楼的方法可行,但是页面传递参数好像最长只有256位,传之前,最好估量一下参数的长度 --------------------编程问答-------------------- 如果下一个窗口是弹出窗口,那么,直接把第一个窗口穿过去就可以了,具体可以查查showModalDialog,他的第二个参数可以穿对象的 --------------------编程问答--------------------
function checkallorno(o) {
var a = o;
while (true) {
var a = a.parentElement;
if (a == null) {
break;
}
if ( a == "undefined") {
a = null;
break;
}
if (a.tagName == "TABLE") {
break;
}
}
if (a != null) {
for (i = 0;i < a.rows.length; i++) {
for (j = 0;j < a.rows[i].cells[0].children.length; j++) {//a.rows[i].cells[0].children.length --指定行的第1个单元格的子元素集
var var1 = a.rows[i].cells[0].children[j];
if (var1.tagName == "INPUT" ) {
if (var1.type == "checkbox") {
if (var1.checked)
{
//组合id
}
}
}
}
}
}
}
最后可作为 ? 后的参数值来传递
如:
window.location='playmusic.aspx?id='+ //组合后的id串 --------------------编程问答-------------------- 支持用session --------------------编程问答-------------------- 首选cookie
最好不浪费session
url传值的话操作不方便
id多了还难看
哈哈 --------------------编程问答-------------------- up --------------------编程问答-------------------- up --------------------编程问答-------------------- 顶4楼 --------------------编程问答-------------------- up --------------------编程问答--------------------
function isdelete(url)
{
var checkBoxArray = document.all;
var count = 0;
var id = "";
for(var i = 0; i<checkBoxArray.length; i++)
{
if(checkBoxArray[i].checked == true && checkBoxArray[i].type=="checkbox" && checkBoxArray[i].id == "cbxID")
{
count++ ;
id += checkBoxArray[i].title +",";
}
}
if(count!=0)
{
if(window.confirm('确定吗?'))
{
window.location.href = url + "&id=" + id;
}
}
else
{
alert('请选择要播放的文件!');
}
}
在页面上接受参数再分割就行了
type = Request.QueryString["type"].ToString();--------------------编程问答-------------------- up ~~ls --------------------编程问答-------------------- up~ --------------------编程问答-------------------- 用cookies吧
if (string.IsNullOrEmpty(type))
return;
string tempid = Request.QueryString["id"].ToString();
tempid = tempid.Remove(tempid.Length - 1);
ids =tempid.Split(',');
用session会占用系统资源 --------------------编程问答-------------------- --------------------编程问答-------------------- Jquery 的$post();方法~
推荐用ajax的方法处理~
cookie有大小限制,如果超过,你的那些歌曲的url都会丢失~
用get()办法也会出现这样的问题,用POST吧~
去下个Jquery看下教程就熟了~ --------------------编程问答-------------------- 你最好用
Session.Add("ids", "值");
用完了
Session["ids"]
后再来个
Session.Remove("ids"); --------------------编程问答-------------------- Split 拆分!
先把用户选种的歌曲拼成一个字符串,然后拆分 --------------------编程问答-------------------- 不知道把数据放到一个数组里,然后用session/application传递是不是可以。 --------------------编程问答-------------------- 传一个datalist对象吧
里面的内容是由前一个页面选中的内容组成的
用的时候遍历datalist就可以了 --------------------编程问答-------------------- 总而言之,这是一个页面间的传值问题 方法大家都说的差不多了 还有就是通过Hidden了 一般情况下不用Session --------------------编程问答-------------------- 应该解决了吧~ --------------------编程问答-------------------- a.aspx中随别放一个服务器按钮,然后PostBackUrl = "b.aspx"
在b.aspx中就可以使用Page.PreviousPage访问a.aspx中的所有控件 --------------------编程问答-------------------- 支持下 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- Server.Transfer也可以考虑 --------------------编程问答-------------------- 获得ChexkBox的值
....
var chkbox=document.getElementsByTagName("input");
var chkChecked=document.getElementById("chkAllItems");
for(var i=0;i<chkbox.length;i++)
{
var temp=chkbox.item(i);
if(temp.type=="checkbox" && temp.id!="chkAllItems")
{
temp.checked=chkChecked.checked;
ItemValues=ItemValues+temp.value+',';
}
}
....
然后用AJAX提交数据到其它页面
--------------------编程问答-------------------- up
....
var body = ItemValues;
var http_request = CreateXMLHttpRequest();
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-Length", body.length);
http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
.......
http_request.send(body);
补充:.NET技术 , ASP.NET