1

我有一个 formview 控件,并且在ItemCreated事件中,我正在“启动”一些具有默认值的字段。

但是,当我尝试使用 formview 插入时,在ItemInserting事件被调用之前,由于某种原因它ItemCreated首先调用。这导致字段在插入发生之前被默认值覆盖。

如何让它在ItemCreated事件之前不调用ItemInserting事件?

4

3 回答 3

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 被覆盖 C# ASP.NET的这个线程

于 2009-11-06T05:20:04.313 回答
0

您不能更改事件触发的顺序。但是,您可能应该将设置默认值的代码包装在其中,!IsPostBack以便它不会重置您的值,例如:

protected void FormView_ItemCreated(Object sender, EventArgs e)
{
  if(!IsPostBack)
  {
    //Set default values ...
  }
}
于 2009-11-05T18:54:45.570 回答
0

尝试检查表单视图的CurrentMode属性。

void FormView_ItemCreated(object sender, EventArgs e)
{
    if (FormView.CurrentMode != FormViewMode.Insert)
    {
        //Initialize your default values here
    }
}
于 2009-11-06T02:36:53.753 回答