关于DATALIST循环取值的问题
protected void CheckBox1_CheckedChanged(object sender, EventArgs e){
for (int i = 0; i < DataList1.Items.Count; i++)
{
CheckBox box = (CheckBox)DataList1.Items[i].FindControl("CheckBox1") as CheckBox;
int pssid = int.Parse(box.Attributes["rel"]);
ProductDao p = new ProductDao();
new_Product pr = new new_Product();
Orders_Details ordd = new Orders_Details();
Orders_DetailsBll orddBll = new Orders_DetailsBll();
bool rest;
if (box.Checked)
{
pr.Id = Convert.ToInt32(pssid);
pr.Is_has = true;
rest = p.UpdateHas(pr);
ordd = orddBll.GetordersByid(pssid);
ordd.Is_change = false;
bool reslft = orddBll.Updateischange(ordd);
}
else
{
pr.Id = Convert.ToInt32(pssid);
pr.Is_hot = false;
rest = p.UpdateHas(pr);
ordd = orddBll.GetordersByid(pssid);
ordd.Is_change = true;
bool reslft = orddBll.Updateischange(ordd);
}
MessageBox.Show(this.Page, "设置成功!");
}
}
这个是datalist嵌套的一个CheckBox,通过datalist循环获取进行更新 但是有些int pssid = int.Parse(box.Attributes["rel"]);或许到的会是相同的照成前面的更新的没效果!在这里希望大家给个提示 这么让pssid相同的直接跳出循环 也就是相同的pssid只让他更新一次 在这先谢了
--------------------编程问答-------------------- List<int>保持,if(!lst.Contains(pssid )){//更新} --------------------编程问答-------------------- 你逻辑不对吧!~就算有重复的也只能按最后的更新为准吧!~,。 --------------------编程问答--------------------
嗯 问题就是出在这! 我要的就是如果重复的 怎么让他不再更新 --------------------编程问答--------------------
能说得详细点么 我是新手 有点不理解 --------------------编程问答--------------------
int pssid = int.Parse(box.Attributes["rel"]);
这个值居然有相同的。。
先把你数据库中的pssid 取出放一个列表中
if(!list.Contains("pssid")) 如果如果数据库中不包含pssid 在进行操作
else
{
....
}
补充:.NET技术 , ASP.NET