我在可编辑的gridView中有一个简单的复选框:
public void GridViewRisquesAggravants_UpdateItem(IndexViewModel item)
{
try
{
if (ModelState.IsValid)
{
CheckBox chbEdit = (CheckBox)GridView.Rows[this.GridView.EditIndex].FindControl("CheckBoxEditable")
if (item.IsEditable)
chbEdit.Checked = true;
new TypeService().Update(new Type
{
IsEditable = item.IsEditable,
});
this.GridView.DataBind();
}
}
catch
{
throw;
}
}
当我点击行中的编辑按钮时,如果value为true,我希望检查checkBox。 (IsEditable是一个布尔值) 文本字段很简单,因为我在EditItemTemplate中的Text属性上有一个BindItem。但是对于checkBox或dropdownlist
,情况并不相同GridView的
我使用UpdateItem方法更新数据库中的数据。我尝试了一个小条件来检查我的复选框,但它确实有效。
SelectMethod="GridView_GetData"
UpdateMethod="GridView_UpdateItem"
DeleteMethod="GridView_DeleteItem"
这是有道理的,因为我没有正确的功能来声明这一点。但我的网络表单中只有3种方法。
{{1}}
我在哪里可以这样做? (而且我对dropdownList上的数据也有同样的问题。我不知道在编辑过程中我在哪里恢复当前值)
提前致谢 (对不起,我是关于webforms的初学者,我的英语并不完美)
小艾
答案 0 :(得分:0)
CheckBox chbx = GridView1.HeaderRow.FindControl("CheckBoxEditable") as CheckBox;
if (chbx != null && chbx.Checked)
{
//code here
}
else
{
//else condtion
}
希望这会有所帮助
答案 1 :(得分:0)
使用以下代码代替编辑模板中的复选框声明
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Convert.ToBoolean("true") %>' />
答案 2 :(得分:0)
我在哪里可以做到这一点?
在RowDataBound
事件中尝试:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chbEdit = (CheckBox)e.Row.FindControl("CheckBoxEditable");
string value = ((Label)e.Row.FindControl("lblID")).Text;
if (value=="True")
chbEdit.Checked = true;
else
chbEdit.Checked = false;
}
}
注意:不要忘记在GrindView <asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" >
答案 3 :(得分:0)
我在CheckBox Control上添加了属性Checked=<%# BindItem.IsEditable %>
,它运行正常。