我正在尝试从gridview获取值。
我使用存储过程为它设置数据源,我们只是说gridview使用动态pivot colums,所以我不能为它们创建一个绑定字段。
这是我的代码试图获取文本框值及其标题值
protected void dgvTask_SelectedIndexChanged(object sender, EventArgs e)
{
var grid = (GridView)sender;
GridViewRow selectedRow = grid.SelectedRow;
int rowIndex = grid.SelectedIndex;
int selectedCellIndex = int.Parse(this.SelectedGridCellIndex.Value);
TextBox txtLogs = (TextBox)selectedRow.Cells[selectedCellIndex].FindControl("txtdata");
string cellValue = txtLogs.Text;
string headerValue = grid.HeaderRow.Cells[selectedCellIndex].Text;
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('" + selectedCellIndex + "')", true);
bindDgvTask();
}
我也尝试使用
string cellValue = grid.SelectedRow.Cells[selectedCellIndex].Text;
获取单元格值,但这两个都返回这些错误
指定的参数超出了有效值范围
selectedRow
不能错,因为它只返回所选行的值。
当我检查selectedCellIndex
时,它也会根据我点击的内容返回正确的值。
但是当我尝试使用row[0].cells[0]
时,这是我设置的唯一边界
<Columns>
<asp:BoundField DataField="Task" HeaderText="Task">
<ControlStyle BackColor="White" BorderColor="Black" />
<ItemStyle BackColor="White" BorderColor="Black" BorderStyle="Solid" ForeColor="Black" />
</asp:BoundField>
</Columns>
返回正确的值。
所以现在我很困惑我是否以错误的方式检索值,或者只是在获取未绑定字段的值时有不同的方法。
提前致谢