Asp.net 单击按钮从GridView获取数据
我的问题是: 我有一个GridView,它绑定到声明的DTO对象列表,并带有一列复选框。另外,我在页面上有一个“保存”按钮。我的任务是获取所有行,选中复选框并获取包含的数据。不幸的是,单击按钮1时,row.DataItem=null,因为我使用的是if(!IsPostBack)gw.DataBind()语句(否则,我无法获取复选框状态)。你能告诉我解决问题的最佳方法吗 提前谢谢你 如果执行Asp.net 单击按钮从GridView获取数据,asp.net,gridview,postback,buttonclick,dataitem,Asp.net,Gridview,Postback,Buttonclick,Dataitem,我的问题是: 我有一个GridView,它绑定到声明的DTO对象列表,并带有一列复选框。另外,我在页面上有一个“保存”按钮。我的任务是获取所有行,选中复选框并获取包含的数据。不幸的是,单击按钮1时,row.DataItem=null,因为我使用的是if(!IsPostBack)gw.DataBind()语句(否则,我无法获取复选框状态)。你能告诉我解决问题的最佳方法吗 提前谢谢你 如果执行If(!IsPostBack)-->gw.DataBind(),将重新初始化GridView,并且复选框将再
If(!IsPostBack)-->gw.DataBind()
,将重新初始化GridView
,并且复选框将再次设置为未选中
在您的情况下,在按钮1\u单击
事件中,您可以在GridView
上的每个DataRow
中循环,找到选中复选框的行,并获取所有选中的行数据
foreach (GridViewRow gvRow in gw.Rows) {
// Find your checkbox
CheckBox chkBox = (CheckBox)gvRow.FindControl("checkBox");
if (chkBox.Checked) {
// Get your values
string value1 = gvRow.Cells[1].Text;
string value2 = gvRow.Cells[2].Text;
// etc...
}
}
这就是我被困住的原因。如果每次加载页面时都进行数据绑定,则无法获取复选框值。如果我用!IsPostBack->row.DataItem==null,因此我无法获取行的数据。请解释一下,我应该如何获取所有行数据?gvRow.Cells[1]。ToString()给出的是“System.Web.UI.WebControls.DataControlFieldCell”,而不是包含的值。我尝试使用foreach(GridView.Rows中的var row)var myObject=row.DataItem;但是DataItem=null它应该是gvRow.Cells[1].Text,对不起