我在itemtemplet中设计了一个带有单选按钮的gridview。我也有一个确认按钮。允许用户检查几个单选按钮,当按下确认按钮时,数据库将使用单选按钮的值进行更新。
但是当我检查按钮时,它在UI中显示为已检查但当我检查后面的代码时,它会将单选按钮的已检查属性显示为false。
for (int i = 0; i < gvTransaction.Rows.Count; i++)
{
if (!((String.IsNullOrEmpty(gvTransaction.Rows[i].Cells[0].Text)) || (gvTransaction.Rows[i].Cells[0].Text == " ")))
{
string transactionID = gvTransaction.Rows[i].Cells[0].Text;
RadioButton btn = (RadioButton)gvTransaction.Rows[i].FindControl("rbtSelect");
if (btn.Checked)
{
// Although the radiobutton is checked code never reach here.
}
}
}
答案 0 :(得分:2)
如果这是Winforms,我的猜测是因为编辑的单选按钮单元格值在被验证之前不会被提交,这在单元格失去焦点时发生。如果要立即提交修改,可以处理CurrentCellDirtyStateChanged事件,并在处理程序中调用CommitEdit方法,如下所示:
void gvTransaction_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (gvTransaction.IsCurrentCellDirty)
{
gvTransaction.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
答案 1 :(得分:2)
如果radiobutton.checkedchanged事件,请使用此选项。
答案 2 :(得分:1)
你如何绑定GridView?如果您在页面加载中执行此操作,请确保您没有在页面PostBacks上重新加载gridView
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //Bind GridView here }
如果有这个帮助,请告诉我们