C# Can';t更改GridView上的Formview模式\u选择的索引已更改
我希望我的表单视图以插入模式开始,然后当用户从同一页面的网格视图中选择一行时,切换到编辑模式 Formview具有内联属性:DefaultMode=“Insert” 这是怎么做到的,为什么不起作用C# Can';t更改GridView上的Formview模式\u选择的索引已更改,c#,asp.net,gridview,formview,C#,Asp.net,Gridview,Formview,我希望我的表单视图以插入模式开始,然后当用户从同一页面的网格视图中选择一行时,切换到编辑模式 Formview具有内联属性:DefaultMode=“Insert” 这是怎么做到的,为什么不起作用 protected void GridView1_SelectedIndexChanged(object sender, System.EventArgs e) { FormView1.ChangeMode(FormViewMode.Edit); } 编辑1: FormView
protected void GridView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
FormView1.ChangeMode(FormViewMode.Edit);
}
编辑1:
FormView源代码
<asp:FormView ID="FormView1" runat="server" DataKeyNames="AdID" DataSourceID="AdByID" DefaultMode="Insert">
<EditItemTemplate>
Caption:
<asp:TextBox ID="CaptionTextBox" runat="server" Text='<%# Bind("Caption") %>' />
<br />
Summary:
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Summary") %>'></asp:TextBox>
<br />
Text:
<telerik:RadEditor ID="RadEditor1" Runat="server" Content='<%# Bind("Text") %>' ToolsFile="~/crm/annonser/ToolsFile.xml"
Language="sv-SE" ToolbarMode="Default"
AllowScripts="True" EditModes="Design" Skin="Office2007"
StripFormattingOnPaste="MSWord" Width="500px">
<Content>
</Content>
</telerik:RadEditor>
<br />
Name:
<asp:TextBox ID="NameTextBox" runat="server" Text='<%# Bind("Name") %>' />
<br />
Email:
<asp:TextBox ID="EmailTextBox" runat="server" Text='<%# Bind("Email") %>' />
<br />
Phone:
<asp:TextBox ID="PhoneTextBox" runat="server" Text='<%# Bind("Phone") %>' />
<br />
PhoneHidden:
<asp:CheckBox ID="PhoneHiddenCheckBox" runat="server"
Checked='<%# Bind("PhoneHidden") %>' />
<br />
Price:
<asp:TextBox ID="PriceTextBox" runat="server" Text='<%# Bind("Price") %>' />
<br />
CategoryCodeID:
<asp:DropDownList ID="DropDownList2" runat="server"
DataSourceID="AdCategoryMarket" DataTextField="Caption"
DataValueField="AdCategoryCodeID" SelectedValue='<%# Bind("CategoryCodeID") %>'>
</asp:DropDownList>
<asp:ObjectDataSource ID="AdCategoryMarket" runat="server"
DeleteMethod="Delete" InsertMethod="Insert"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="dsCRMTableAdapters.app_AdCategoryCodeTableAdapter"
UpdateMethod="Update">
<DeleteParameters>
<asp:Parameter Name="Original_AdCategoryCodeID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Caption" Type="String" />
<asp:Parameter Name="DisplayOrder" Type="Int32" />
<asp:Parameter Name="CategoryTypeID" Type="Int32" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Caption" Type="String" />
<asp:Parameter Name="DisplayOrder" Type="Int32" />
<asp:Parameter Name="CategoryTypeID" Type="Int32" />
<asp:Parameter Name="Original_AdCategoryCodeID" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
<br />
StateCodeID:
<asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="AdStateCode"
DataTextField="Caption" DataValueField="AdStateCodeID"
SelectedValue='<%# Bind("StateCodeID") %>'>
</asp:DropDownList>
<asp:ObjectDataSource ID="AdStateCode" runat="server" DeleteMethod="Delete"
InsertMethod="Insert" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData"
TypeName="dsCRMTableAdapters.app_AdStateCodeTableAdapter" UpdateMethod="Update">
<DeleteParameters>
<asp:Parameter Name="Original_AdStateCodeID" Type="Byte" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Caption" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Caption" Type="String" />
<asp:Parameter Name="Original_AdStateCodeID" Type="Byte" />
</UpdateParameters>
</asp:ObjectDataSource>
<br />
RegionCodeID:
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="Regions"
DataTextField="name" DataValueField="RegionCodeID"
SelectedValue='<%# Bind("RegionCodeID") %>'>
</asp:DropDownList>
<asp:ObjectDataSource ID="Regions" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="dsCRMTableAdapters.app_RegionCodeTableAdapter">
</asp:ObjectDataSource>
<br />
StopDate:
<telerik:RadDatePicker ID="RadDatePicker1" Runat="server" Culture="sv-SE"
DbSelectedDate='<%# Bind("StopDate") %>'>
</telerik:RadDatePicker>
<br />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" CommandArgument='<%# Eval("AdID") %>' />
<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate></asp:FormView>
最初的问题很可能就在那里,你不认为吗?问题是,如何使事件按预期工作?您能解释一下“不工作”是什么意思吗?好的,表单不会更改为编辑模式。您是绑定指定FormView1的datasource属性还是使用某种数据源控件(如ObjectDataSource、SqlDataSource、XmlDataSource等) ? 一些代码会非常有用。FormView使用的是一个ObjectDataSource,其中包含从GridView收集的SelectParameter。我没有意识到datasource会对这件事产生影响……事实上,如果它们配置正确,就不会有问题。您可以发布ObjectDataSource和FormView1的代码吗?
<asp:ObjectDataSource ID="AdByID" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetDataByID"
TypeName="dsCRMTableAdapters.app_AdTableAdapter" DeleteMethod="Delete"
InsertMethod="Insert" UpdateMethod="Update">
<DeleteParameters>
<asp:Parameter Name="Original_AdID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Caption" Type="String" />
<asp:Parameter Name="Summary" Type="String" />
<asp:Parameter Name="Text" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Phone" Type="String" />
<asp:Parameter Name="PhoneHidden" Type="Boolean" />
<asp:Parameter Name="Price" Type="Decimal" />
<asp:Parameter Name="CategoryCodeID" Type="Byte" />
<asp:Parameter Name="StateCodeID" Type="Byte" />
<asp:Parameter Name="RegionCodeID" Type="Byte" />
<asp:Parameter Name="StopDate" Type="DateTime" />
<asp:Parameter Name="ModifiedBy" Type="Int32" />
<asp:Parameter Name="CreatedOn" Type="DateTime" />
<asp:Parameter Name="ModifiedOn" Type="DateTime" />
<asp:Parameter DbType="Guid" Name="AdGUID" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="AdID" PropertyName="SelectedValue" Type="Int32" DefaultValue="0" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Caption" Type="String" />
<asp:Parameter Name="Summary" Type="String" />
<asp:Parameter Name="Text" Type="String" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Email" Type="String" />
<asp:Parameter Name="Phone" Type="String" />
<asp:Parameter Name="PhoneHidden" Type="Boolean" />
<asp:Parameter Name="Price" Type="Decimal" />
<asp:Parameter Name="CategoryCodeID" Type="Byte" />
<asp:Parameter Name="StateCodeID" Type="Byte" />
<asp:Parameter Name="RegionCodeID" Type="Byte" />
<asp:Parameter Name="StopDate" Type="DateTime" />
<asp:Parameter Name="ModifiedBy" Type="Int32" />
<asp:Parameter Name="CreatedOn" Type="DateTime" />
<asp:Parameter Name="ModifiedOn" Type="DateTime" />
<asp:Parameter DbType="Guid" Name="AdGUID" />
<asp:Parameter Name="Original_AdID" Type="Int32" />
</UpdateParameters></asp:ObjectDataSource>
protected void FormView1_ItemUpdated(Object sender, FormViewCommandEventArgs e)
{
Response.Redirect("www.stackoverflow.com");
}