我正在尝试在gridview中实现一个复选框,
此复选框的作用是验证记录,
按下此验证按钮后,所有带复选复选框的项目都会输入到数据库中
这是我的代码:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox cbox = ((CheckBox)row.FindControl("Verify"));
if (cbox.Equals(true))
{
String DraftsText = ((TextBox)row.FindControl("numDrafts")).Text;
String TCtext = ((TextBox)row.FindControl("numTC")).Text;
if (row.RowType == DataControlRowType.DataRow)
{
//Header trs = new Header();
// GridView1.Rows[0].FindControl("numTC");
if (TCtext != "" && DraftsText != "")
{
// try
// {
string date = row.Cells[4].Text;
DateTime dateTime = Convert.ToDateTime(date);
string dateFormatted = dateTime.ToString("d-MMM-yy");
string unit = row.Cells[5].Text;
string currency = row.Cells[6].Text;
string totalFC = row.Cells[7].Text;
string totalDC = row.Cells[8].Text;
int d = Convert.ToInt32(DraftsText);
int tc = Convert.ToInt32(TCtext);
hdr = new Header(d, tc, dateFormatted, unit, currency, totalFC, totalDC);
hdr.InsertFCTC(hdr);
}
}
}
}
}
我可能会以错误的方式去,但是在if(cbox.Equals(true)) 它给了我一个例外:对象引用未设置为对象的实例。
知道我能做些什么来解决这个问题吗?
非常感谢
答案 0 :(得分:1)
此if (cbox.Equals(true))
应为if (cbox.Checked)
由于您的cbox is a checkbox object
无法用于比较,因此您必须使用cbox
Checked
属性,该属性将返回true/false
答案 1 :(得分:1)
您收到NullPointerException,因为找不到建议的复选框!或者直接强制转换为CheckBox类型的实例并不能按预期工作。
答案 2 :(得分:1)
将您的代码更改为类似的内容并重试:
CheckBox cbox = ((CheckBox)row.FindControl("Verify"));
if (cbox != null && cbox.Checked)
{
....
}