我写的删除datalist中选中的多项checkbox的代码是下面的,系统提示说是“if(ck.Checked)'这儿未将对象引用设置到对象的实例,烦各位高手指教一下怎么修改啊?int[] arr=new int[100];
for(int i = 0; i < DataList1.Items.Count; i++)
{
CheckBox ck =this.DataList1.Items[i].FindControl("CheckBox1")as CheckBox;
if (ck.Checked)
{
arr[i] = int.Parse((DataList1.Items[i].FindControl("Label2") as Label).Text);
string sql = "delete from selecting where id in (";
for (int j = 0; j < arr.Length; )
{
sql += "+j+" + ",";
}
sql = sql.Substring(0, sql.Length - 1);
sql += ")"; SqlCommand com = new SqlCommand(sql, con);
com.ExecuteNonQuery(); }
for(int i = 0; i < DataList1.Items.Count; i++)
{
CheckBox ck =this.DataList1.Items[i].FindControl("CheckBox1")as CheckBox;
if (ck.Checked)
{
arr[i] = int.Parse((DataList1.Items[i].FindControl("Label2") as Label).Text);
string sql = "delete from selecting where id in (";
for (int j = 0; j < arr.Length; )
{
sql += "+j+" + ",";
}
sql = sql.Substring(0, sql.Length - 1);
sql += ")"; SqlCommand com = new SqlCommand(sql, con);
com.ExecuteNonQuery(); }
解决方案 »
- Table中的记录可不可以排序啊,要怎么写?
- .net 4.0 检测到有潜在危险的 Request.Form 值
- |zyciis| 网上找到一的代取文件上传过度的 HttpUploadModule 但只要我取了Request代码就无效,谢谢
- 关于登陆后返回原页面的问题
- 自定义控件传参问题,比较急,在线等!
- WebForm1.MemberData_Edit(object, System.Web.UI.WebControls.DataGridCommandEventArgs)”,因为它受保护级别限制
- 在aa.aspx.cs中定义的变量能否在aa.aspx的js脚本中使用?
- 求一图片略缩组件 。。功能类似aspjpg 或 wsimages组件的功能 100分送上
- 提个菜鸟问题,如何使用水晶报表语法?(在线)
- 急~!我和我的域名空间服务商发生了矛盾,我怕他们不还我以前在他们那里托管的所有域名管理密码怎么办?(我发现我的以前转过去的域名密码
- web.config 配置路径
- 请教有经验得高手
注意:EnableViewState="true"<%@ Page Language="C#" EnableViewState="true" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("Score", typeof(System.Double)));
System.Random rd = new System.Random();
for (int i = 1; i < 6; i++)
{
dr = dt.NewRow();
dr[0] = i * i;
dr[1] = "【孟子E章】" + i.ToString();
dr[2] = System.Math.Ceiling(rd.NextDouble() * 100);
dt.Rows.Add(dr);
}
System.Data.DataView dv = new System.Data.DataView(dt);
DataList1.DataSource = dv;
DataList1.DataBind();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < DataList1.Items.Count; i++)
{ CheckBox ck = this.DataList1.Items[i].FindControl("CheckBox1") as CheckBox;
if (ck.Checked)
{
Response.Write("<li> 选择了:" + (DataList1.Items[i].FindControl("Label2") as Label).Text);
}
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
<asp:DataList ID="DataList1" runat="server" CellPadding="0" CellSpacing="0">
<ItemTemplate>
<li>
<asp:CheckBox ID="CheckBox1" runat="server" /><asp:Label ID="Label2" Text='<%#Eval("id") %>'
runat="server"></asp:Label></li>
</ItemTemplate>
</asp:DataList>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</form>
</body>
</html>
你去遍历多个是否处于选中的时候 用checkbox1 这样不行的吧 你的id都是checkbox1吗?
转换完 ck 为空 有可能没找到这个控件
加上 if(ck!=null)
{
//....
}
在前面加上if(ck!=null)
并且不忘了load事件里面加
if (!Page.IsPostBack)
{
}