CheckBoxList问题,请高手进来指点迷津

zcxverygood123456 2008-11-18 04:37:16
在更新事件里,部分代码:
string sqlinsert1 = "";
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
if (CheckBoxList1.Items[i].Selected)
{
sqlinsert1 += CheckBoxList1.Items[i].Text + ",";
Label1.Text=sqlinsert1.Substring(0,sqlinsert1.LastIndexOf(","));
}
}
cmdUpdate.Parameters.Add( "@a11",Label1.Text );
================================
问题是:如果字段里的数据本来为空,更新后,仍然为空;
如果选择一个或一个以上后,就不能回到为空的状态,意思是至少要选择一个。
请问代码如何改才能使CheckBoxList1想选择空也行。
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcxverygood123456 2008-11-19
  • 打赏
  • 举报
回复
搞定了,原来是这么简单的问题!
zcxverygood123456 2008-11-19
  • 打赏
  • 举报
回复
经过测试
难道CheckBoxList1这个控件一个都没选中,更新不了
萤火架构 2008-11-18
  • 打赏
  • 举报
回复
添加一个按钮之类的 按下后用javascript循环遍历,清除list中的选择项
takako_mu 2008-11-18
  • 打赏
  • 举报
回复
想不出来啊,好像有个类似与Groupname的属性在里面。。
zcxverygood123456 2008-11-18
  • 打赏
  • 举报
回复
JS代码,我不太看得懂。
最好有C#,代码。
------------------------------
CheckBoxList1控件真怪,如果对应的字段加上数据后,通过更新不能使这个字段为空,至少要选择一个才行,如果你全部都不选中,它还是默认一个。
也许等到明天天亮就想通了。
aigoo 2008-11-18
  • 打赏
  • 举报
回复

<script language="javascript">
<!--
function CheckBoxSelected(e,obj,maxSelect)
{
var checkBoxes=obj.getElementsByTagName("INPUT");
var myEvent=e||window.event;
var currentElement=myEvent.target||myEvent.srcElement;
var currentCheckbox;
if(currentElement.type!="checkbox")
return;
else
currentCheckbox=currentElement;
var selectedCheckBoxes=new Array();
for(var i=0;i<checkBoxes.length;i++)
{
if(checkBoxes[i].type=="checkbox" && checkBoxes[i].checked)
{
selectedCheckBoxes[selectedCheckBoxes.length++]=checkBoxes[i];
}
}
var selectedNum=selectedCheckBoxes.length;
if(selectedNum<1)
{
currentCheckbox.checked=true;
return;
}
if(!currentCheckbox.checked)
return;
var difference=selectedNum-maxSelect;

if(difference>0)
{
if(selectedCheckBoxes[1]!=currentCheckbox)
selectedCheckBoxes[1].checked=false;
else
selectedCheckBoxes[selectedCheckBoxes.length-1].checked=false;
}
}
-->
</script>

<asp:CheckBoxList ID="cbl_youdian" runat="server" Height="53px" RepeatColumns="6" onclick="CheckBoxSelected(event,this,3)"
Width="100%">
<asp:ListItem Value="相貌出眾">相貌出眾 </asp:ListItem>
<asp:ListItem Value="身材姣好">身材姣好 </asp:ListItem>
<asp:ListItem Value="學識淵博">學識淵博 </asp:ListItem>
<asp:ListItem Value="事業有成">事業有成 </asp:ListItem>
<asp:ListItem Value="經濟條件">經濟條件 </asp:ListItem>
<asp:ListItem Value="個性脾氣nice">個性脾氣nice</asp:ListItem>
<asp:ListItem Value="家庭背景">家庭背景 </asp:ListItem>
<asp:ListItem Value="未來前途">未來前途</asp:ListItem>
</asp:CheckBoxList>
zcxverygood123456 2008-11-18
  • 打赏
  • 举报
回复
经过测试,还是没达到效果
==============
如果@a11对应的字段以前有数据,现在我想把清空,即一个都不选,上面的代码实现不了,它至少也得保留一个,怎样才能一个都不要,或者可以多选择几个,就是很随意的选择,即可以为空,也可以不为空。
上面的代码,只能选择不为空。
heyu1000 2008-11-18
  • 打赏
  • 举报
回复
不知道LZ想做什么。
如果你是想选择空的时候就不更新的话,那么可以:

string sqlinsert1 = "";
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
if (CheckBoxList1.Items[i].Selected)
{
sqlinsert1 += CheckBoxList1.Items[i].Text + ",";
Label1.Text=sqlinsert1.Substring(0,sqlinsert1.LastIndexOf(","));
}
}
if(Label1.Text!="")
{
cmdUpdate.Parameters.Add( "@a11",Label1.Text );
.....
}
junsir 2008-11-18
  • 打赏
  • 举报
回复
string sqlinsert1 = ""; 
for (int i = 0; i < CheckBoxList1.Items.Count; i++)
{
if (CheckBoxList1.Items[i].Selected)
{
sqlinsert1 += CheckBoxList1.Items[i].Text + ",";
Label1.Text=sqlinsert1.Substring(0,sqlinsert1.LastIndexOf(","));
}
}
if(Label1.Text!="")
{
cmdUpdate.Parameters.Add( "@a11",Label1.Text );

}

62,269

社区成员

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

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

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

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