注册 登录
编程论坛 ASP.NET技术论坛

[求助]遍历数组

lmyh5201 发布于 2007-06-07 13:24, 3185 次点击
string aa="用户名 |办公电话 |QQ号码 |家庭电话 |邮政编码 |密码问题 |ICQ号码 |手机号码 |用户性别 |问题答案 |MSN帐号 |出生日期 |签名档 |电子信箱 |UC号码 |隐私设定 |"
string [] arr=System.Text.RegularExpressions.Regex.Split(aa,"\\|");
然后我想遍历这个数组,怎么遍历呀,遍历完了,我要让 ( 用户名,办公电话,QQ号码,家庭电话,邮政编码,密码问题,ICQ号码 ,手机号码,用户性别,问题答案,MSN帐号 ,出生日期,签名档,电子信箱,UC号码,隐私设定 ) 所对应的checkbox成选中状态,怎么实现呀?
43 回复
#2
lmyh52012007-06-07 14:12

没有人会吗?

#3
qittdgd2007-06-07 16:28
protected void Page_Load(object sender, EventArgs e)
{
CheckBox ch;
string[] aa ={ "VB", "C++", "C#" };
for (int i = 0; i < aa.Length; i++)
{
ch = new CheckBox();
ch.ID = i.ToString();
ch.Text =aa[i];
form1.Controls.Add(ch); ;
ch.Visible = true;
}
}
#4
lmyh52012007-06-07 17:52
form1是什么意思呀
#5
lmyh52012007-06-07 18:09
我按你的写了,它就是不走这一句:ch.Checked = true;这一句
#6
qittdgd2007-06-07 19:38
form1是表单,如果没有表单就用Page,不过服务器端控件好像不能放在表单外面,我那里面好像没有ch.Checked =true;
只有ch.Visible = true;
#7
qittdgd2007-06-07 19:42

当然那句或许你可以去掉,我是怕它在动态加载默认是不可见的.所以把控件设为可见.
控件动态加载默认可见与否你自己去试试下就知道了

#8
qittdgd2007-06-07 19:45
ch.ID = i.ToString();这句最好改成ch.ID = "check" +i.ToString();以防ID冲突.其中"check"只是前缀.
#9
qittdgd2007-06-07 19:48
不好意思,我没有认真看题.我以为是动态加载几个CheckBox
#10
qittdgd2007-06-07 19:57

string[] chips = table.Chip.Split(new char[] { ',' });

for (int i = 1; i <= 11; i++)
{
for (int y = 0; y < 6; y++)
{
if (((CheckBox)FindControl("tb" + i)).Text .Equals( chips[y].ToString()))
{
((CheckBox)FindControl("tb" + i)).Checked = true;
}
}
}

这个是我之前的一个程序摘出来的,当然,我这个程序是把原本有CheckBox按序号命名了.所以我用循环去遍历

[此贴子已经被作者于2007-6-7 19:59:25编辑过]

#11
lmyh52012007-06-09 14:28

你那11和6是什么呀?我的那个是不确定的,我只不过打了个比方

#12
lmyh52012007-06-09 14:28
我还是看不明白你那个
#13
lmyh52012007-06-09 14:36

我用的是5个CHECKBOXLIST,每个CHECKBOXLIST里有5个CHECKBOOX,怎么让它选中呢

#14
qittdgd2007-06-09 17:19

晕倒,你用的是CheckBoxList? 也不早说

CheckBoxList 要 CheckBoxList1.Items[0].Selected=true; 就好

你要怎么样去遍历都好

#15
qittdgd2007-06-09 17:23

string[] temp ={ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25"};
for (int i = 0; i < temp.Length; i++)
{

for (int y = 0; y < CheckBoxList1.Items.Count;y++ )
{
if (CheckBoxList1.Items[y].Text.Equals(temp[i]))
{
CheckBoxList1.Items[y].Selected = true;
}
}
for (int y = 0; y < CheckBoxList2.Items.Count; y++)
{
if (CheckBoxList2.Items[y].Text.Equals(temp[i]))
{
CheckBoxList2.Items[y].Selected = true;
}
}
for (int y = 0; y < CheckBoxList3.Items.Count; y++)
{
if (CheckBoxList3.Items[y].Text.Equals(temp[i]))
{
CheckBoxList3.Items[y].Selected = true;
}
}
for (int y = 0; y < CheckBoxList4.Items.Count; y++)
{
if (CheckBoxList4.Items[y].Text.Equals(temp[i]))
{
CheckBoxList4.Items[y].Selected = true;
}
}
for (int y = 0; y < CheckBoxList5.Items.Count; y++)
{
if (CheckBoxList5.Items[y].Text.Equals(temp[i]))
{
CheckBoxList5.Items[y].Selected = true;
}
}
}

#16
lmyh52012007-06-11 08:49
不行呀 ,它就是不走IF判断里面的这句呀CheckBoxList1.Items[y].Selected = true;怎么回事呀?快帮帮我呀!!!
#17
川流不息2007-06-11 08:59
if (CheckBoxList1.Items[y].Text.Equals(temp[i]))
那就是這個條件始終不成立是吧,為什麼你不去斷點調試一下呢?你這樣問是不行的,你自己不去調試怎麼能知道他為什麼不成立。
#18
lmyh52012007-06-11 09:02
主要是我的机子不能调试呀,要是能的话,我也知道调试呀
#19
lmyh52012007-06-11 09:19
这是代码:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string [] arr=System.Text.RegularExpressions.Regex.Split(this.member_mustreg.Text,"\\|");
for(int i=0;i<arr.Length;i++)
{
for(int y=0;y<CheckBoxList1.Items.Count;y++)
{
if(CheckBoxList1.Items[y].Text.Equals(arr[i]))
{
CheckBoxList1.Items[y].Selected=true;
}
}
for(int y=0;y<Checkboxlist2.Items.Count;y++)
{
if(Checkboxlist2.Items[y].Text.Equals(arr[i]))
{
Checkboxlist2.Items[y].Selected=true;
}
}
for(int y=0;y<Checkboxlist3.Items.Count;y++)
{
if(Checkboxlist3.Items[y].Text.Equals(arr[i]))
{
Checkboxlist3.Items[y].Selected=true;
}
}
for(int y=0;y<Checkboxlist4.Items.Count;y++)
{
if(Checkboxlist4.Items[y].Text.Equals(arr[i]))
{
Checkboxlist4.Items[y].Selected=true;
}
}
for(int y=0;y<Checkboxlist5.Items.Count;y++)
{
if(Checkboxlist5.Items[y].Text.Equals(arr[i]))
{
Checkboxlist5.Items[y].Selected=true;
}
}
}

}
}

看看哪的问题呀!急死我了!!!!
#20
川流不息2007-06-11 10:23
Checkboxlist3.Items.Count
你打印一下這些count看是不是大於0。
#21
lmyh52012007-06-11 11:23

是大于0呀

#22
lmyh52012007-06-11 11:26

我调试了,就是i的问题,他不自加,老是0

#23
lmyh52012007-06-11 11:26
为什么呀
#24
川流不息2007-06-11 11:30
那你看看哪一個checkboxlist中有你要的值,然後你把那個
for(int y=0;y<Checkboxlist5.Items.Count;y++)
{
if(Checkboxlist5.Items[y].Text.Equals(arr[i]))
{
Checkboxlist5.Items[y].Selected=true;
}
}
arr[i]和CheckBoxlist.Items的所有Text打出來,看看,是不是真的相等。比如說,看看有沒有空格而導致兩個字符串不相等之類。

[此贴子已经被作者于2007-6-11 11:30:50编辑过]

#25
lmyh52012007-06-11 11:33
它一开始y=0,i=0它也不走checkboxlist1.items[y].selected=true;在往后旧不相等了,就是i它老是0,我写了让它++,可它不++呀
#26
川流不息2007-06-11 11:36
arr.Length你確定這個的大小
#27
lmyh52012007-06-11 11:38

什么意思呀.就是把他的长度写死吗?

#28
川流不息2007-06-11 11:40
不是,我是讓你打出來這個的大小是不是大於1。或者是等於0.
#29
lmyh52012007-06-11 11:43
大于1呀,打出来是正确的呀
#30
qittdgd2007-06-11 12:45
CheckBoxList1.Items[y].Text的文本是什么?
你在页面CheckBoxList1里面的CheckBox的文本是什么?
会不会不和arr这个数据组里的内容相同?

[此贴子已经被作者于2007-6-11 12:52:49编辑过]

#31
qittdgd2007-06-11 12:50

我给你那代码我自己试了都行的..
怎么到你那儿不行了..

#32
lmyh52012007-06-11 12:57
CheckBoxList1.Items[y].Text的文本是"用户名"
页面CheckBoxList1里面的CheckBox的文本是用户名,主页,办公电话,联系地址,用户头像
#33
lmyh52012007-06-11 13:07
可我调试的时候arr[i]为什么老是0呢,它也不加1呀
#34
qittdgd2007-06-11 13:28

那就不知道了,你可不可把你文件用附件的形式传上来,我下下来看看

#35
lmyh52012007-06-11 13:37
只有本站会员才能查看附件,请 登录

#36
lmyh52012007-06-11 13:39

不行呀,你有QQ吗?我给你传过去

#37
lmyh52012007-06-11 15:05

在不在呀?你看到了吗?怎么改呀?

#38
qittdgd2007-06-11 15:15

刚去开会了...
QQ:192271188
真实姓名 小辛

#39
lmyh52012007-06-11 15:20

查找超时呀,你加我吧594886560

#40
qittdgd2007-06-11 15:25

你把dr["member_mustreg"]里面的值给我看看...

#41
qittdgd2007-06-11 15:26

说你拒绝我加你为好友

#42
lmyh52012007-06-11 15:28
你在试试
#43
lmyh52012007-06-11 16:04
谢谢大家了,问题以解决
#44
zyq0ting2008-05-06 22:15
不知道
1