日期:2014-05-18  浏览次数:20345 次

不知道问题出在哪里了,着急啊,关于checkbox(非asp.net控件)和js代码的问题

三段代码,第一个是前台页面的checkbox的js代码,第二段是通过foreach输出html代码。其中包括checkbox。然后放在label里面,
第三段是一个按钮事件,点击后会识别哪个checkbox是选中的。然后通过response输出该值。但是一直运行有问题。总体是未将对象引用设置到对象的实例。但我不确定是那里的问题




前台js代码


C# code

<script language="javascript" type="text/javascript">
function CheckForm(obj)
{
    var i;
    var intListLength;
    
    intListLength = obj.chk.length;
    
    for(i=1; i < intListLength; i++)
    {
        if(obj.chk[i].checked)
        {
            if(window.confirm("您确认需要删除操作吗?"))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
        return false;
}
</script>




后台cs代码1
(通过foreach输出html,在label1上显示)
C# code

String SQL;
SQL = "select * from [order]";
SqlDataAdapter sda = new SqlDataAdapter(SQL, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "[order]");
DataTable dt = ds.Tables["[order]"];

        
int i = 0;
foreach (DataRow row in dt.Rows)  //输出html表格
        {
            Label1.Text += "<table><tr><td><input type='checkbox' id=chk" + i + " name='chk' value=" + row["id"].ToString() + "
runat='server'/></td><td>" + (row["sn"]) + "</td></tr></table>";
            i++;
        }






台cs代码2

(点击该按钮可以显示选中的checkbox的value)(其实真正是需要删除选中的值,但为了方便测试。就用显示值先代替了)

C# code

protected void Button5_Click(object sender, EventArgs e)
    {
        DefaultPage();
        conn.Open();
        string SQL;
        SQL = "select * from [order]";
        SqlDataAdapter sda = new SqlDataAdapter(SQL,conn);
        DataSet ds = new DataSet();
        sda.Fill(ds, "[order]");
        DataTable dt = ds.Tables["order"];

        for (int i = 0; i < dt.Rows.Count; i++) //一运行到这里就提示未将对象引用设置到对象的实例。
        {
            System.Web.UI.HtmlControls.HtmlInputCheckBox chk = (System.Web.UI.HtmlControls.HtmlInputCheckBox)this.FindControl("chk" + i);
            if (chk.Checked)
            {
                Response.Write(chk.Value);
            }
        }
        conn.Close();
    }



------解决方案--------------------
string str = Request.Form["chk"];
if(str != null)
{
//再做
}