我有一个formview控件,在ItemCreated
事件中,我使用默认值“启动”了一些字段。
但是,当我尝试使用formview插入时,在调用ItemInserting
事件之前,由于某种原因它首先调用ItemCreated
。这导致在插入发生之前使用默认值覆盖字段。
如何在ItemCreated
事件之前调用ItemInserting
事件?
答案 0 :(得分:2)
你需要使用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
}
}
同时检查此类似问题的线程 FormView_Load being overwritten C# ASP.NET
答案 1 :(得分:0)
您无法更改事件触发的顺序。但是,您应该将设置默认值的代码包装在!IsPostBack
内,以便它不会重置您的值,例如:
protected void FormView_ItemCreated(Object sender, EventArgs e)
{
if(!IsPostBack)
{
//Set default values ...
}
}
答案 2 :(得分:0)
尝试检查表单视图的CurrentMode属性。
void FormView_ItemCreated(object sender, EventArgs e)
{
if (FormView.CurrentMode != FormViewMode.Insert)
{
//Initialize your default values here
}
}