SZT
SZT

Reputation: 1976

Formview.ChangeMode is not working

This is my webpage:

<asp:FormView
  ID = "frmView1"
  DefaultMode = "Insert"
  runat = "server"
 >
  <ItemTemplate>
      Item Template
  </ItemTemplate>
  <InsertItemTemplate>
      Insert Item Template
  </InsertItemTemplate>    
</asp:FormView>

<asp:Button ID="btnSubmit" Text="Submit" runat="server" />

and this is the code-behind:

Private Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click
    frmView1.ChangeMode(FormViewMode.ReadOnly)
End Sub

When I'm clicking the btnSubmit the formview is not showing anything! Is this the right way to change mode in code behind?

Moreover, in code behind instead of ChangeMode if write this:

frmView1.DefaultMode = FormViewMode.ReadOnly

forview shows the content of InsertItemTemplate. Could someone please explain what's going on here?

Upvotes: 0

Views: 5776

Answers (3)

Ravi Ranjan
Ravi Ranjan

Reputation: 19

In your code

<asp:Button ID="btnSubmit" Text="Submit" runat="server" />

must change to

<asp:Button ID="btnSubmit" Text="Submit" runat="server" command="ChangeModeToReadOnly" OnCommand="Button_Command" />

Instead of implementing OnClick event implement this

Protected Sub Button_Command(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
   Select Case e.CommandName
     Case "ChangeModeToReadOnly"
       frmView1.ChangeMode(FormViewMode.ReadOnly)
   End Select
End Sub

Upvotes: 1

Ashwini Verma
Ashwini Verma

Reputation: 7525

FormView won't show unless you bind, something like this:

using(SqlDataAdapter adapter = new SqlDataAdapter(sql,connection))
{
   DataTable table = new DataTable();
   adapter.Fill(table);
   FormView1.DataSource = table;
   FormView1.DataBind();   
}

And just add EmptyDataTemplate tag to show empty message if your datasource don't return any value.

 <EmptyDataTemplate>
    There is nothing to see here.
</EmptyDataTemplate>

follow this tutorial and more about this on MSDN

Upvotes: 1

sarwar026
sarwar026

Reputation: 3821

You can try with adding the following DataBound function

protected void myFormView_DataBound(object sender, EventArgs e)
{
    frmView1.ChangeMode(FormViewMode.ReadOnly);
}

The syntax is in C#

Upvotes: 0

Related Questions