0

这是我的网页:

<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" />

这是代码隐藏:

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

当我单击 btnSubmit 时,formview 没有显示任何内容!这是在代码后面更改模式的正确方法吗?

此外,如果这样写,则在后面的代码中而不是 ChangeMode 中:

frmView1.DefaultMode = FormViewMode.ReadOnly

forview 显示 InsertItemTemplate 的内容。有人可以解释一下这里发生了什么吗?

4

3 回答 3

1

除非您绑定,否则 FormView 不会显示,如下所示:

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

如果您的数据源不返回任何值,只需添加 EmptyDataTemplate 标记以显示空消息。

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

按照本教程以及MSDN上的更多信息

于 2012-04-12T17:48:56.507 回答
1

在您的代码中

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

必须改为

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

而不是实现 OnClick 事件实现这个

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
于 2012-05-01T10:48:41.410 回答
0

您可以尝试添加以下DataBound函数

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

语法在C#

于 2012-04-12T18:03:38.687 回答