小弟在一个GridView中有个Input,绑定的Sort字段,Int型,现在要求修改Input的值,然后提交,并排序,但是出问题了
protected void btnSort_Click(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("checkbox");
TextBox text = (TextBox)GridView1.Rows[i].FindControl("sort");
text = new TextBox();
if (text.Text.ToString() != "")//现在这步为空,不知道怎么取值循环直接跳过了
{
if (cbox.Checked == true)
{
cc.Info_ID = int.Parse(GridView1.DataKeys[i].Value.ToString());
cc.Sort = int.Parse(text.Text.Trim());
companyInfoManage.SortCompanyInfo(cc);//调用的存储过程,修改Input的值
}
}
}
Response.Write("<script language=javascript>alert('修改成功!')</script>");
SortBind();//排序并绑定
}
请各位大大指教,昨天selad已经指教了,但还是不太懂
------解决方案--------------------------------------------------------
protected void btnSort_Click(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("checkbox");
TextBox text = (TextBox)GridView1.Rows[i].FindControl("sort");
text = new TextBox(); //这句去掉 if (text.Text.ToString() != "")//现在这步为空,不知道怎么取值循环直接跳过了
{
if (cbox.Checked == true)
{
cc.Info_ID = int.Parse(GridView1.DataKeys[i].Value.ToString());
cc.Sort = int.Parse(text.Text.Trim());
companyInfoManage.SortCompanyInfo(cc);//调用的存储过程,修改Input的值
}
}
}
Response.Write(" <script language=javascript>alert('修改成功!') </script>");
SortBind();//排序并绑定
}
------解决方案--------------------------------------------------------
TextBox text = (TextBox)GridView1.Rows[i].FindControl("sort");
text = new TextBox();
你都已经new TextBox()了能不为空吗.应该把"text = new TextBox(); "去掉.
如果显示“未将对象引用设置到对象的实例”说明你"TextBox text = (TextBox)GridView1.Rows[i].FindControl("sort"); "这句没取到对象.你检查一下sort名字是否正确.
------解决方案--------------------------------------------------------
楼主textbox是服务器控件,你用的是input属于html控件
你试着这样做:
HtmlInputText hit = (HtmlInputText)GridView1.Rows[i].FindControl("sort");
看行不行
------解决方案--------------------------------------------------------
Request.Form["sort"] 取到的是 用 , 隔开的所有的sort值
你的这个排序还要用户先点checkbox 再输入具体的值 实在是麻烦。。