读书人

经过checkbox 获取 gridview的某个字段

发布时间: 2013-10-27 15:21:50 作者: rapoo

通过checkbox 获取 gridview的某个字段 求.NET 达人
各位达人:
在gridview中 如何通过勾选checkbox 获取改行的第二列字段
其中:checkbox是gridview的模板列
具体看下图程序 gridview checkbox .net
[解决办法]
no..no.. 你应该这么写:

 protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataGridDataBind();
}
}


你还没有理解你出错的原因:
当你点击页面上的按钮触发B_Query_Click事件前,页面需要PostBack一次,此时会触发Page_Load事件(你可以在page_load事件上打个断点调试一下,你就全明白了). 你之前的代码,时将GridView的绑定方—ataGridDataBind放在 IsPostBack外边,导到每次page_load事件都会重新绑定一次gridview,将你之前选中的checkbox给全部清空掉了,这就是你出错的真正原因。
[解决办法]
我刚自己写了个例子试了下 没问题的呀
 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}

public void BindData()
{
DataTable dt = new DataTable();
dt.Columns.Add("编号");
dt.Columns.Add("订单号");
dt.Columns.Add("时间");

for (int i = 1; i < 11; i++)
{
DataRow dr = dt.NewRow();
dr["编号"] = i;
dr["订单号"] = 10000+i;
dr["时间"] = DateTime.Now;
dt.Rows.Add(dr);
}

GridView1.DataSource = dt;
GridView1.DataBind();

}

protected void Button1_Click(object sender, EventArgs e)
{
string[] strArr = new string[GridView1.Rows.Count];
int j = 0;
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb = GridView1.Rows[i].FindControl("CheckBox") as CheckBox;
if (cb != null && cb.Checked)
{
strArr[j] = GridView1.Rows[i].Cells[2].Text.ToString();
j++;
}
}
TextBox1.Text = strArr[0];


TextBox2.Text = strArr[1];
TextBox3.Text = strArr[2];
TextBox4.Text = strArr[3];
}



经过checkbox 获取 gridview的某个字段 求.NET 达人

楼主 你看你是不是哪里写得有问题

读书人网 >asp.net

热点推荐