C# ASP.NET编辑嵌套GridView控件中的值
我试图在另一个GridView中编辑GridView中的值。我可以编辑第一个GridView上的值,但是当我在子GridView上点击edit时,除了回发之外,什么都没有发生 我的GridView结构如下:C# ASP.NET编辑嵌套GridView控件中的值,c#,asp.net,data-binding,gridview,C#,Asp.net,Data Binding,Gridview,我试图在另一个GridView中编辑GridView中的值。我可以编辑第一个GridView上的值,但是当我在子GridView上点击edit时,除了回发之外,什么都没有发生 我的GridView结构如下: <asp:GridView ID="gwProperties" runat="server" Width="100%" onrowediting="gwProperties_RowEditing" AutoGenerateColumns=
<asp:GridView ID="gwProperties" runat="server" Width="100%"
onrowediting="gwProperties_RowEditing" AutoGenerateColumns="False"
DataKeyNames="Name,IsActive"
onrowcancelingedit="gwProperties_RowCancelingEdit"
onrowdeleting="gwProperties_RowDeleting"
ShowFooter="True" onrowupdating="gwProperties_RowUpdating">
<FooterStyle BackColor="#20334F" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="green" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:CommandField ShowEditButton="true" EditText="Ret" UpdateText="Gem" CancelText="Annuller" />
<asp:BoundField DataField="Name" HeaderText="Navn" SortExpression="Name" />
<asp:TemplateField HeaderText="Aktiv" SortExpression="IsActive" Visible="true">
<ItemTemplate>
<asp:Label runat="server" ID="Label2" Text='<%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Aktiv" : "Inaktiv" %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox runat="server" ID="cbIsPropertyActive" Checked='<%# Bind("IsActive") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView DataKeyNames="StreetName,Zip,City,Country" runat="server" ID="gwAddresses" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("Addresses") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Vejnavn">
<ItemTemplate>
<asp:Label runat="server" ID="lblStreetName" Text='<%# Bind("StreetName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtStreetName" Text='<%# Bind("StreetName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" EditText="Ret" UpdateText="Gem" CancelText="Annuller" />
<asp:BoundField DataField="Zip" HeaderText="Postnummer" SortExpression="Zip" />
<asp:BoundField DataField="City" HeaderText="By" SortExpression="City" />
<asp:BoundField DataField="Country" HeaderText="Land" SortExpression="Country" />
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView runat="server" ID="gwStreetNumbers" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("StreetNumbers") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:BoundField DataField="Number" HeaderText="Nummer" SortExpression="Number" />
<asp:BoundField DataField="Letter" HeaderText="Bogstav" SortExpression="Letter" />
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView runat="server" ID="gwPrivateLeases" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("LeaseTypes.PrivateLeases") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Aktiv">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsLeaseActive" Text='<%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Aktiv" : "Inaktiv" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TakeoverDate" HeaderText="Overtagelsesdato" SortExpression="TakeoverDate" />
<asp:BoundField DataField="Floor" HeaderText="Sal" SortExpression="Floor" />
<asp:BoundField DataField="Side" HeaderText="Side" SortExpression="Side" />
<asp:BoundField DataField="Regulating" HeaderText="Regulering" />
<asp:HyperLinkField DataNavigateUrlFields="Prospect" HeaderText="Prospekt" />
<asp:HyperLinkField DataNavigateUrlFields="FloorPlanDrawing" HeaderText="Plantegning" />
<asp:BoundField DataField="LeasingPeriod" HeaderText="Lejeperiode" />
<asp:BoundField DataField="SquareMetre" HeaderText="Kvadratmeter" />
<asp:BoundField DataField="Rent" HeaderText="Husleje" />
<asp:BoundField DataField="NumberOfRooms" HeaderText="Antal værelser" />
<asp:BoundField DataField="ACConsumption" HeaderText="A/C forbrug" />
<asp:BoundField DataField="PaymentInAdvance" HeaderText="Forudbetalt leje" />
<asp:BoundField DataField="Termination" HeaderText="Opsigelse (antal måneder)" />
<asp:TemplateField HeaderText="Møbleret">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("IsFurnished").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Husdyr">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("IsAnimalsAllowed").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Altan">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("HasBalcony").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delevenlig">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("CanBeShared").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TypeOfRental" HeaderText="Lejemålstype" />
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView runat="server" ID="gwBusinessLeases" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("LeaseTypes.BusinessLeases") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Aktiv">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsLeaseActive" Text='<%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Aktiv" : "Inaktiv" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TakeoverDate" HeaderText="Overtagelsesdato" SortExpression="TakeoverDate" />
<asp:BoundField DataField="Floor" HeaderText="Sal" SortExpression="Floor" />
<asp:BoundField DataField="Side" HeaderText="Side" SortExpression="Side" />
<asp:BoundField DataField="Regulating" HeaderText="Regulering" />
<asp:HyperLinkField DataNavigateUrlFields="Prospect" HeaderText="Prospekt" />
<asp:HyperLinkField DataNavigateUrlFields="FloorPlanDrawing" HeaderText="Plantegning" />
<asp:BoundField DataField="MinimumSquareMetre" HeaderText="Kvadratmeter min." />
<asp:BoundField DataField="MaximumSquareMetre" HeaderText="Kvadratmeter max." />
<asp:BoundField DataField="YearlyRentPerSquareMetre" HeaderText="Årlig leje pr. m2" />
<asp:BoundField DataField="ACYearlyOperationalCostPerSquareMetre" HeaderText="Årlig drift pr. m2" />
<asp:BoundField DataField="Deposit" HeaderText="Depositum" />
<asp:BoundField DataField="MonthsOfPaymentInAdvance" HeaderText="Forudbetalt leje (antal måneder)" />
<asp:BoundField DataField="VATAgreements" HeaderText="Moms" />
<asp:BoundField DataField="MonthsOfTermOfNotice" HeaderText="Opsigelsesvarsel" />
<asp:BoundField DataField="TypeOfRental" HeaderText="Lejemålstype" />
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
- Property
- List<Address>
- Address object: List<StreetNumber>
- StreetNumber object: List<LeaseTypes>
- LeseTypes object: List<PrivateLease> and List<BusinessLease>
但它什么也没做。这可能吗?我找到了一些关于这方面的优秀文章,但我就是无法让它发挥作用:-/
我有一种奇怪的感觉,我使用了错误的控制
我的对象结构如下:
<asp:GridView ID="gwProperties" runat="server" Width="100%"
onrowediting="gwProperties_RowEditing" AutoGenerateColumns="False"
DataKeyNames="Name,IsActive"
onrowcancelingedit="gwProperties_RowCancelingEdit"
onrowdeleting="gwProperties_RowDeleting"
ShowFooter="True" onrowupdating="gwProperties_RowUpdating">
<FooterStyle BackColor="#20334F" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="green" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:CommandField ShowEditButton="true" EditText="Ret" UpdateText="Gem" CancelText="Annuller" />
<asp:BoundField DataField="Name" HeaderText="Navn" SortExpression="Name" />
<asp:TemplateField HeaderText="Aktiv" SortExpression="IsActive" Visible="true">
<ItemTemplate>
<asp:Label runat="server" ID="Label2" Text='<%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Aktiv" : "Inaktiv" %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox runat="server" ID="cbIsPropertyActive" Checked='<%# Bind("IsActive") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView DataKeyNames="StreetName,Zip,City,Country" runat="server" ID="gwAddresses" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("Addresses") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Vejnavn">
<ItemTemplate>
<asp:Label runat="server" ID="lblStreetName" Text='<%# Bind("StreetName") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtStreetName" Text='<%# Bind("StreetName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" EditText="Ret" UpdateText="Gem" CancelText="Annuller" />
<asp:BoundField DataField="Zip" HeaderText="Postnummer" SortExpression="Zip" />
<asp:BoundField DataField="City" HeaderText="By" SortExpression="City" />
<asp:BoundField DataField="Country" HeaderText="Land" SortExpression="Country" />
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView runat="server" ID="gwStreetNumbers" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("StreetNumbers") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:BoundField DataField="Number" HeaderText="Nummer" SortExpression="Number" />
<asp:BoundField DataField="Letter" HeaderText="Bogstav" SortExpression="Letter" />
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView runat="server" ID="gwPrivateLeases" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("LeaseTypes.PrivateLeases") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Aktiv">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsLeaseActive" Text='<%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Aktiv" : "Inaktiv" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TakeoverDate" HeaderText="Overtagelsesdato" SortExpression="TakeoverDate" />
<asp:BoundField DataField="Floor" HeaderText="Sal" SortExpression="Floor" />
<asp:BoundField DataField="Side" HeaderText="Side" SortExpression="Side" />
<asp:BoundField DataField="Regulating" HeaderText="Regulering" />
<asp:HyperLinkField DataNavigateUrlFields="Prospect" HeaderText="Prospekt" />
<asp:HyperLinkField DataNavigateUrlFields="FloorPlanDrawing" HeaderText="Plantegning" />
<asp:BoundField DataField="LeasingPeriod" HeaderText="Lejeperiode" />
<asp:BoundField DataField="SquareMetre" HeaderText="Kvadratmeter" />
<asp:BoundField DataField="Rent" HeaderText="Husleje" />
<asp:BoundField DataField="NumberOfRooms" HeaderText="Antal værelser" />
<asp:BoundField DataField="ACConsumption" HeaderText="A/C forbrug" />
<asp:BoundField DataField="PaymentInAdvance" HeaderText="Forudbetalt leje" />
<asp:BoundField DataField="Termination" HeaderText="Opsigelse (antal måneder)" />
<asp:TemplateField HeaderText="Møbleret">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("IsFurnished").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Husdyr">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("IsAnimalsAllowed").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Altan">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("HasBalcony").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delevenlig">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsFurnished" Text='<%# (Boolean.Parse(Eval("CanBeShared").ToString())) ? "Ja" : "Nej" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TypeOfRental" HeaderText="Lejemålstype" />
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
</td>
</tr>
<tr>
<td colspan="100%">
<asp:GridView runat="server" ID="gwBusinessLeases" Width="100%" AutoGenerateColumns="false" DataSource='<%#Eval("LeaseTypes.BusinessLeases") %>' OnRowEditing="gwAddresses_RowEditing">
<Columns>
<asp:TemplateField HeaderText="Aktiv">
<ItemTemplate>
<asp:Label runat="server" ID="lblIsLeaseActive" Text='<%# (Boolean.Parse(Eval("IsActive").ToString())) ? "Aktiv" : "Inaktiv" %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="TakeoverDate" HeaderText="Overtagelsesdato" SortExpression="TakeoverDate" />
<asp:BoundField DataField="Floor" HeaderText="Sal" SortExpression="Floor" />
<asp:BoundField DataField="Side" HeaderText="Side" SortExpression="Side" />
<asp:BoundField DataField="Regulating" HeaderText="Regulering" />
<asp:HyperLinkField DataNavigateUrlFields="Prospect" HeaderText="Prospekt" />
<asp:HyperLinkField DataNavigateUrlFields="FloorPlanDrawing" HeaderText="Plantegning" />
<asp:BoundField DataField="MinimumSquareMetre" HeaderText="Kvadratmeter min." />
<asp:BoundField DataField="MaximumSquareMetre" HeaderText="Kvadratmeter max." />
<asp:BoundField DataField="YearlyRentPerSquareMetre" HeaderText="Årlig leje pr. m2" />
<asp:BoundField DataField="ACYearlyOperationalCostPerSquareMetre" HeaderText="Årlig drift pr. m2" />
<asp:BoundField DataField="Deposit" HeaderText="Depositum" />
<asp:BoundField DataField="MonthsOfPaymentInAdvance" HeaderText="Forudbetalt leje (antal måneder)" />
<asp:BoundField DataField="VATAgreements" HeaderText="Moms" />
<asp:BoundField DataField="MonthsOfTermOfNotice" HeaderText="Opsigelsesvarsel" />
<asp:BoundField DataField="TypeOfRental" HeaderText="Lejemålstype" />
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
- Property
- List<Address>
- Address object: List<StreetNumber>
- StreetNumber object: List<LeaseTypes>
- LeseTypes object: List<PrivateLease> and List<BusinessLease>
因此,基本上这是一个五步的深层结构,我需要在我的ASP.NET解决方案的前端绑定并使其可编辑
这让我头疼得厉害,所以如果有人能给我一点提示,告诉我如何做到这一点,我会非常高兴的
提前谢谢
博