<asp:FormView ID="FormView1" runat="server" AllowPaging="True"
DataSourceID="SqlDataSource1" OnModeChanging="FormView1_ModeChanging">
<EditItemTemplate>
ID :
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
CpuName :
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
Status :
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</EditItemTemplate>
<EmptyDataTemplate>
There is no data.
</EmptyDataTemplate>
<ItemTemplate>
<table>
<tr>
<td align="right"><b>ID: </b></td>
<td><%# Eval("Id") %></td>
</tr>
<tr>
<td align="right"><b>CPUName:</b></td>
<td><%# Eval("cpuname") %></td>
</tr>
<tr>
<td align="right"><b>Status</b></td>
<td><%# Eval("status") %></td>
</tr>
</table>
<asp:LinkButton CommandName="Edit" runat="server">Edit</asp:LinkButton>
<asp:LinkButton CommandName="Insert" runat="server">Insert</asp:LinkButton>
</ItemTemplate>
<InsertItemTemplate>
<table>
<tr>
<td align="right"><b>ID: </b></td>
<td>
<asp:TextBox ID="txtFVID" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td align="right"><b>CPUName:</b></td>
<td>
<asp:TextBox ID="txtFVName" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td align="right"><b>Status</b></td>
<td>
<asp:TextBox ID="txtFVStatus" runat="server"></asp:TextBox></td>
</tr>
</table>
</InsertItemTemplate>
</asp:FormView>
protected void FormView1_ModeChanging(object sender, FormViewModeEventArgs e)
{
if (e.NewMode == FormViewMode.Edit)
{
FormView1.ChangeMode(FormViewMode.Edit);
}
if (e.NewMode == FormViewMode.Insert)
{
FormView1.ChangeMode(FormViewMode.Insert);
}
}
我收到以下错误: - FormView“FormView1”必须处于插入模式才能插入新记录。
答案 0 :(得分:7)
添加
<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False"
CommandName="New" Text="New" />
进入<ItemTemplate>
。
移动你的
<asp:LinkButton CommandName="Insert" runat="server">Insert</asp:LinkButton>
</ItemTemplate>
到<InsertItemTemplate>
所属的地方。
答案 1 :(得分:2)
您可以在ItemCommand
事件中执行此操作,例如......
protected void FormView1_ItemCommand(object sender, FormViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
FormView1.ChangeMode(FormViewMode.Edit);
}
else if (e.CommandName == "Insert")
{
FormView1.ChangeMode(FormViewMode.Insert);
}
}
答案 2 :(得分:0)
要将CommandName
更改为插入模式的FormView
为“新”,而不是“插入”。 “插入”CommandName用于在插入模式下执行数据源控件的实际Insert方法。
尝试:
<asp:LinkButton CommandName="New" runat="server">New</asp:LinkButton>