高分求教怎样删除自定义控件中checkboxlist里面的item

Jiazi840207 2005-07-15 10:43:46
怎样删除checkboxlist里面的item
我做了一个多选题题目控件,用于一个考试系统。每次提交答案后,我想把已有的item删除,于是我调用了clear()方法,但是控件并没有从页面中消失
下面是我的控件的代码
namespace hanlin.program.Components.problems
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Collections.Specialized;

/// <summary>
/// MultiChoice 的摘要说明。
/// </summary>
public class MultiChoice : System.Web.UI.UserControl,IProblem
{
protected System.Web.UI.WebControls.Label txtproblem;
protected System.Web.UI.WebControls.CheckBoxList choices;
private char curindex='A';
private Int64 id;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
public Int64 uid
{
get
{
return id;
}
set
{
id=value;
}
}
public StringDictionary getChoices()
{
StringDictionary sd=new StringDictionary ();
foreach (ListItem li in choices.Items )
{

sd.Add (li.Text ,li.Value );
}
return sd;
}
/// <summary>
/// 用于自增题目选项的标号(a,b,c等)
/// </summary>
private char index
{
get
{
char i=curindex;
//curindex+=1;

return i;
}
}
private void IncreIndex()
{

curindex=(char)((byte)curindex+1);
}
/// <summary>
/// 为题目添加选项
/// </summary>
/// <param name="s"></param>
///

public void init()
{

//choices.Items.Clear ();


//choices.Controls .Clear ();
}
virtual public void addChoice(string s)
{

ListItem li=new ListItem (index.ToString ()+". "+s,index.ToString ());
IncreIndex();

choices.Items.Add (li);

}
/// <summary>
/// 题干
/// </summary>
virtual public string problem
{
get
{
return txtproblem.Text ;
}
set
{
txtproblem.Text =value;
}
}

/// <summary>
/// 获取所选的若干构成的标号字符串
/// </summary>
/// <param name="e"></param>
///
public string choice
{
get
{
string s=" ";
foreach (ListItem li in choices.Items )
{

if(li.Selected )s+=li.Value ;

}
curindex='A';
choices.Items.Clear ();//获取答案后,已有的选项就被删除
return s.Trim ();
}
set
{//

if(value==null)
return;
foreach (ListItem li in choices.Items )
{

if(value.IndexOf(li.Value )>=0)//contains it
li.Selected =true;
}
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}

...全文
245 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jiazi840207 2005-07-17
  • 打赏
  • 举报
回复
问题没有解决呀..有人答吗?
hackate 2005-07-15
  • 打赏
  • 举报
回复
http://blog.csdn.net/rickjelly2004/archive/2004/12/16/218732.aspx

这里看一下
hipop 2005-07-15
  • 打赏
  • 举报
回复
同意楼上的说法
Ly105 2005-07-15
  • 打赏
  • 举报
回复
protected System.Web.UI.WebControls.CheckBoxList choices;
改为 public 后就可以在页面指向它,然后remove就是了
renyu732 2005-07-15
  • 打赏
  • 举报
回复
remove
lulei 2005-07-15
  • 打赏
  • 举报
回复
没看见choices的数据源,如果是绑定的话就要将源clear
jimu8130 2005-07-15
  • 打赏
  • 举报
回复
学习ing
Jiazi840207 2005-07-15
  • 打赏
  • 举报
回复
来人呀~~~来人呀....
Jiazi840207 2005-07-15
  • 打赏
  • 举报
回复
再顶一下看看~~~~
lr2651 2005-07-15
  • 打赏
  • 举报
回复
CheckBoxList cbl = new CheckBoxList();
cbl.Items.Remove(你要移除的项);
Ly105 2005-07-15
  • 打赏
  • 举报
回复
public 的目的是为了才外部可以引用到
和继续不继续使用没有关系  
建议楼主好好看看基础语言属性
Jiazi840207 2005-07-15
  • 打赏
  • 举报
回复
回 lulei(特呆):

我是循环调用Add方法来添加ListItem的,并没有绑定数据源呀.这要怎么办呢?

回Ly105(等待) :

CheckBoxList是还要继续使用的,只是想换掉里面的Item

62,242

社区成员

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

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

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

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