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

menghuan816 2010-11-23 09:36:41

如图,如题:
asp.net嵌套在Repeater控件里面的DropDownList怎么将不为0的值保存起来?每个DropDownList的值是for循环得到的。都是0-16!在离开该页面时再返回该页,刚选中的值一直还保存!
回答要有具体思路,不管Seeion、Cookie都要有具体思路。效果就像如图,返回该页时,值还在。
具体点哈!谢谢。
...全文
238 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
leejelen 2010-11-23
  • 打赏
  • 举报
回复
你在Repeater中的ItemDataBound里面循环读每一个Item,通过FindControl来读取每一个的值。只有如果是分页的话。就有点麻烦了!
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 sp1234 的回复:]
慢慢去搞吧,这种东西是给初学者练手、理解asp.net机制的简单习题。
[/Quote]
看来是高人哦。
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 sp1234 的回复:]
引用 5 楼 menghuan816 的回复:
引用 4 楼 leejelen 的回复:
就是用url形式传递参数,遍历里面的值拼接后传值,不过如果是太多级别的话。这样后面可能会很乱哦。或许也可以用Cache和Session之类的!


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


“一个”?

你把模板定义跟运行时搞混了吧?!
[/Quote]Repeater就一个DropDownList,数据动态加载的。DropDownList跟着循环,有多少行就有多少个DropDownList。你有没有什么好办法?
  • 打赏
  • 举报
回复
慢慢去搞吧,这种东西是给初学者练手、理解asp.net机制的简单习题。
by_封爱 2010-11-23
  • 打赏
  • 举报
回复
是不是你绑定的时候就没有value?

我先吃饭 QQ 446294446 加我 一会给你远程弄
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 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…………
[/Quote]
事件放生改变时,没有重新绑定。
hiilovejava 2010-11-23
  • 打赏
  • 举报
回复
最好不要
if (d.SelectedValue != "0")
{
}这样
你建个数组 把选择的全放进去,这样位置也不会错
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 menghuan816 的回复:]
引用 4 楼 leejelen 的回复:
就是用url形式传递参数,遍历里面的值拼接后传值,不过如果是太多级别的话。这样后面可能会很乱哦。或许也可以用Cache和Session之类的!


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

“一个”?

你把模板定义跟运行时搞混了吧?!
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 diaodiaop 的回复:]
怎么我的代码不对吗
if (d.SelectedValue != "0")
{
//这个地方写插入数据库 到时候你在到这个界面的时候 读数据库不就哦了吗?
}
[/Quote]
不能保存到数据库哦,不知道是哪个用户。你这样循环得到的值与选中的值结果不一样的。string a = d.SelectedValue[i].tostring();我就循环得到DropDownList里面的值,不知道为什么就不行。
hiilovejava 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 diaodiaop 的回复:]
不好意思 才是手写的 可能会有错误

C# code

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

就单看代码,理论上来说 不可能取到的值和选中的发生区别呀,lz用断点看看是哪里发生的重新绑定出现错误
by_封爱 2010-11-23
  • 打赏
  • 举报
回复
怎么我的代码不对吗
if (d.SelectedValue != "0")
{
//这个地方写插入数据库 到时候你在到这个界面的时候 读数据库不就哦了吗?
}
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 diaodiaop 的回复:]
不好意思 才是手写的 可能会有错误

C# code

for (int i = 0; i < Repeater1.Items.Count; i++)
{
DropDownList d = Repeater1.Items[i].FindControl("DropDownList1") as DropDownList;
i……
[/Quote]
这样循环得到的值,和选中的值结果不一样了。
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 suiye007 的回复:]
其实你们都想得太简单了,像以上效果,保存值,其实也没那么容易,以前我做的时候,是设计合理,所以才好做,比如,当会员登陆了后,所选择的那个效果是有表保存的,像你们说URL,如果有二十条,那会惨了,还有,翻页也要保存的话,更惨。所以,保存到数据库是最好的选择。那样,只要重新装载就OK了
[/Quote]

是啊,想着好简单,结果遇到麻烦。你是做了登陆,我这个没登陆,就要保存,你有没有办法?
諾临風 2010-11-23
  • 打赏
  • 举报
回复
如果利用缓存,Session等,同上~~~~~~~~~~~~~~~~~
諾临風 2010-11-23
  • 打赏
  • 举报
回复
其实你们都想得太简单了,像以上效果,保存值,其实也没那么容易,以前我做的时候,是设计合理,所以才好做,比如,当会员登陆了后,所选择的那个效果是有表保存的,像你们说URL,如果有二十条,那会惨了,还有,翻页也要保存的话,更惨。所以,保存到数据库是最好的选择。那样,只要重新装载就OK了
by_封爱 2010-11-23
  • 打赏
  • 举报
回复
不好意思 才是手写的 可能会有错误

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
}
}
by_封爱 2010-11-23
  • 打赏
  • 举报
回复
在保存的时候的事件

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

{
DropDownList d=Repeater.items[i].findcontrol("DropDownList1") as DropDownList ;
if (d.selectValue!=0)
{
//写你的方法
}
}
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
没人懂哦?
menghuan816 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 q107770540 的回复:]
Repeater 有个ItemDataBound事件吧..
[/Quote]
想起来蛮简单的哦!
q107770540 2010-11-23
  • 打赏
  • 举报
回复
Repeater 有个ItemDataBound事件吧..
加载更多回复(6)

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧