我有一个 formview 控件,并且在ItemCreated
事件中,我正在“启动”一些具有默认值的字段。
但是,当我尝试使用 formview 插入时,在ItemInserting
事件被调用之前,由于某种原因它ItemCreated
首先调用。这导致字段在插入发生之前被默认值覆盖。
如何让它在ItemCreated
事件之前不调用ItemInserting
事件?
您需要使用 formview Databound 事件而不是 formview ItemCreated 事件来设置值,尝试像
protected void frm_DataBound(object sender, EventArgs e)
{
if (frm.CurrentMode == FormViewMode.Edit)//whatever your mode here is.
{
TextBox txtYourTextBox = (TextBox)frm.FindControl("txtYourTextBox");
txtYourTextBox.Text// you can set here your Default value
}
}
您不能更改事件触发的顺序。但是,您可能应该将设置默认值的代码包装在其中,!IsPostBack
以便它不会重置您的值,例如:
protected void FormView_ItemCreated(Object sender, EventArgs e)
{
if(!IsPostBack)
{
//Set default values ...
}
}
尝试检查表单视图的CurrentMode属性。
void FormView_ItemCreated(object sender, EventArgs e)
{
if (FormView.CurrentMode != FormViewMode.Insert)
{
//Initialize your default values here
}
}