关于CheckBoxlist多选,选择一个后会自动退出

问道于旁 2014-06-25 05:41:37
写了一个弹出层CheckBoxlist, 绑定数据没有问题,
错误是:进入CheckBoxList页面后,单击选择一个,就会执行 cblOrderPerson_SelectedIndexChanged一次,然后退出,
百思不得其解,
求指导,调试也没找出错误,
正常情况下,应该是点击一个user, 执行cblOrderPerson_SelectedIndexChanged一次,但是不会退出,继续点击下一个,实现多选功能。

如果有更好的办法,请说明,谢了


<asp:CheckBoxList ID="cblOrderPerson" runat="server" RepeatColumns="6" RepeatDirection="Horizontal"
Width="100%" OnSelectedIndexChanged="cblOrderPerson_SelectedIndexChanged" AutoPostBack="True">
</asp:CheckBoxList>



protected void SelectPersonItem_Command(object sender, CommandEventArgs e)
{
int cooId = this.lstCooName.SelectedValue.ToInteger();
int cooTypeId = this.lstCooType.SelectedValue.ToInteger();
WorkOrderPersonConfigLogic workOrderPersonConfigLogic = new WorkOrderPersonConfigLogic();
if (cooId != 0 && e.CommandName == "SelectPersonItem")
{
DataTable dtPersonInfo = workOrderPersonConfigLogic.GetOrderPersonNameByCooTypeIdAndCooId(cooId, cooTypeId);
if (dtPersonInfo != null && dtPersonInfo.Rows.Count > 0)
{
this.cblOrderPerson.DataSource = dtPersonInfo;
this.cblOrderPerson.DataValueField = "USER_ID";
this.cblOrderPerson.DataTextField = "PERSON_NAME";
this.cblOrderPerson.DataBind();

this.lblCooId.Text = cooId.ToString(); ;
this.lblCooTypeId.Text = cooTypeId.ToString();
this.lblOrderPersonId.Text = "USER_ID";





protected void cblOrderPerson_SelectedIndexChanged(object sender, EventArgs e)
{
PageChanged(sender);
}
/// <summary>
/// 选择多个user
/// </summary>
/// <param name="sender">功能:对user进行多个选择</param>
public void PageChanged(object sender)
{
//string userIds = this.lblOrderPersonId.Text.Trim();
this.lblOrderPersonId.Text = "0";
for (int i = 0; i < cblOrderPerson.Items.Count; i++ )
{
if (this.cblOrderPerson.Items[i].Selected == true)
{
this.lblOrderPersonId.Text = this.lblOrderPersonId.Text + cblOrderPerson.Items[i].Value + ",";
}
}
}
...全文
260 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
问道于旁 2014-06-26
  • 打赏
  • 举报
回复
请问:有人么
save4me 2014-06-26
  • 打赏
  • 举报
回复
把AutoPostBack="True"改成False看一下。如果是True的话,就是每次你选中,页面就会提交传回服务器,页面就重载,也就是又是一个新页面了。
问道于旁 2014-06-26
  • 打赏
  • 举报
回复
噢了, 流程如三楼琐事, 但是我的实际错误是,在回发后 系统在想回到弹出层时,被我隐藏掉了弹出层版面。。。 我有罪。。。上天请宽恕我
水中钓鱼的猫 2014-06-26
  • 打赏
  • 举报
回复
如果是弹出层里面放的checkboxlist的话,那么没选中一个则页面会回发到服务器,然后服务器会解析页面模版并返回html给客户端,客户端重新解析html并渲染,so,你现在看到的页面相当于是一个新页面了,弹出层被关闭是很正常的。 正确理解服务端控件,要解决这个问题 very easy。 简单的一种就是,判断页面是否回发的,如果是,在页面模版上输出一段js脚本,执行弹出层显示。
水中钓鱼的猫 2014-06-26
  • 打赏
  • 举报
回复
弹出层???????????????????

62,244

社区成员

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

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

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

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