当前位置:编程学习 > C#/ASP.NET >>

asp.net嵌套在Repeater控件里面的DropDownList怎么将不为0的值保存起来?


如图,如题:
asp.net嵌套在Repeater控件里面的DropDownList怎么将不为0的值保存起来?每个DropDownList的值是for循环得到的。都是0-16!在离开该页面时再返回该页,刚选中的值一直还保存!
回答要有具体思路,不管Seeion、Cookie都要有具体思路。效果就像如图,返回该页时,值还在。
具体点哈!谢谢。 --------------------编程问答-------------------- 通过url将值传给下一个页面
从下一个页面回 到此页面时再将值传回来
在page_load中取到后绑定 --------------------编程问答--------------------
引用 1 楼 q107770540 的回复:
通过url将值传给下一个页面
从下一个页面回 到此页面时再将值传回来
在page_load中取到后绑定

选多个DropDownList,值怎么传? --------------------编程问答-------------------- for循环遍历repeater
拼接字符串
当前行主键id+DropDownList.SelectValue --------------------编程问答-------------------- 就是用url形式传递参数,遍历里面的值拼接后传值,不过如果是太多级别的话。这样后面可能会很乱哦。或许也可以用Cache和Session之类的! --------------------编程问答--------------------
引用 4 楼 leejelen 的回复:
就是用url形式传递参数,遍历里面的值拼接后传值,不过如果是太多级别的话。这样后面可能会很乱哦。或许也可以用Cache和Session之类的!


问题是把选的值怎么绑回去,因为在Repeater里面就一个DropDownList! --------------------编程问答-------------------- Repeater 有个ItemDataBound事件吧.. --------------------编程问答--------------------
引用 6 楼 q107770540 的回复:
Repeater 有个ItemDataBound事件吧..

想起来蛮简单的哦! --------------------编程问答-------------------- 没人懂哦? --------------------编程问答-------------------- 在保存的时候的事件

for (int i=0 i<Repeater.items.count;i++)

{
  DropDownList  d=Repeater.items[i].findcontrol("DropDownList1") as DropDownList ;
  if (d.selectValue!=0)
  {
    //写你的方法
   }
  } --------------------编程问答-------------------- 不好意思  才是手写的 可能会有错误

for (int i = 0; i < Repeater1.Items.Count; i++)
        {
            DropDownList d = Repeater1.Items[i].FindControl("DropDownList1") as DropDownList;
            if (d.SelectedValue != "0")
            {
                //this is your code
            }
        }
--------------------编程问答-------------------- 其实你们都想得太简单了,像以上效果,保存值,其实也没那么容易,以前我做的时候,是设计合理,所以才好做,比如,当会员登陆了后,所选择的那个效果是有表保存的,像你们说URL,如果有二十条,那会惨了,还有,翻页也要保存的话,更惨。所以,保存到数据库是最好的选择。那样,只要重新装载就OK了 --------------------编程问答-------------------- 如果利用缓存,Session等,同上~~~~~~~~~~~~~~~~~ --------------------编程问答--------------------
引用 11 楼 suiye007 的回复:
其实你们都想得太简单了,像以上效果,保存值,其实也没那么容易,以前我做的时候,是设计合理,所以才好做,比如,当会员登陆了后,所选择的那个效果是有表保存的,像你们说URL,如果有二十条,那会惨了,还有,翻页也要保存的话,更惨。所以,保存到数据库是最好的选择。那样,只要重新装载就OK了


是啊,想着好简单,结果遇到麻烦。你是做了登陆,我这个没登陆,就要保存,你有没有办法? --------------------编程问答--------------------
引用 10 楼 diaodiaop 的回复:
不好意思 才是手写的 可能会有错误

C# code

for (int i = 0; i < Repeater1.Items.Count; i++)
        {
            DropDownList d = Repeater1.Items[i].FindControl("DropDownList1") as DropDownList;
            i……

这样循环得到的值,和选中的值结果不一样了。 --------------------编程问答-------------------- 怎么我的代码不对吗
if (d.SelectedValue != "0")
{
//这个地方写插入数据库 到时候你在到这个界面的时候 读数据库不就哦了吗?
}
--------------------编程问答--------------------
引用 10 楼 diaodiaop 的回复:
不好意思 才是手写的 可能会有错误

C# code

for (int i = 0; i < Repeater1.Items.Count; i++)
        {
            DropDownList d = Repeater1.Items[i].FindControl("DropDownList1") as DropDownList;
            i……


就单看代码,理论上来说 不可能取到的值和选中的发生区别呀,lz用断点看看是哪里发生的重新绑定出现错误 --------------------编程问答--------------------
引用 15 楼 diaodiaop 的回复:
怎么我的代码不对吗
if (d.SelectedValue != "0")
{
//这个地方写插入数据库 到时候你在到这个界面的时候 读数据库不就哦了吗?
}

不能保存到数据库哦,不知道是哪个用户。你这样循环得到的值与选中的值结果不一样的。string a = d.SelectedValue[i].tostring();我就循环得到DropDownList里面的值,不知道为什么就不行。 --------------------编程问答--------------------
引用 5 楼 menghuan816 的回复:
引用 4 楼 leejelen 的回复:
就是用url形式传递参数,遍历里面的值拼接后传值,不过如果是太多级别的话。这样后面可能会很乱哦。或许也可以用Cache和Session之类的!


问题是把选的值怎么绑回去,因为在Repeater里面就一个DropDownList!


“一个”?

你把模板定义跟运行时搞混了吧?! --------------------编程问答-------------------- 最好不要 
if (d.SelectedValue != "0")
{
}这样 
你建个数组 把选择的全放进去,这样位置也不会错 --------------------编程问答--------------------
引用 16 楼 hiilovejava 的回复:
引用 10 楼 diaodiaop 的回复:
不好意思 才是手写的 可能会有错误

C# code

for (int i = 0; i < Repeater1.Items.Count; i++)
  {
  DropDownList d = Repeater1.Items[i].FindControl("DropDownList1") as DropDownList;
  i…………

事件放生改变时,没有重新绑定。 --------------------编程问答-------------------- 是不是你绑定的时候就没有value?

我先吃饭 QQ  446294446  加我 一会给你远程弄 --------------------编程问答-------------------- 慢慢去搞吧,这种东西是给初学者练手、理解asp.net机制的简单习题。 --------------------编程问答--------------------
引用 18 楼 sp1234 的回复:
引用 5 楼 menghuan816 的回复:
引用 4 楼 leejelen 的回复:
就是用url形式传递参数,遍历里面的值拼接后传值,不过如果是太多级别的话。这样后面可能会很乱哦。或许也可以用Cache和Session之类的!


问题是把选的值怎么绑回去,因为在Repeater里面就一个DropDownList!


“一个”?

你把模板定义跟运行时搞混了吧?!
Repeater就一个DropDownList,数据动态加载的。DropDownList跟着循环,有多少行就有多少个DropDownList。你有没有什么好办法? --------------------编程问答--------------------
引用 22 楼 sp1234 的回复:
慢慢去搞吧,这种东西是给初学者练手、理解asp.net机制的简单习题。

看来是高人哦。 --------------------编程问答-------------------- 你在Repeater中的ItemDataBound里面循环读每一个Item,通过FindControl来读取每一个的值。只有如果是分页的话。就有点麻烦了! --------------------编程问答-------------------- 不行哦,不行哦,出大问题了!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,