/ / Získajte hodnotu z DetailsView do FormView Textbox v režime vloženia - c #, asp.net, detailsview, formview

Získajte hodnotu z DetailsView do FormView Textbox v režime vloženia - c #, asp.net, detailview, formview

Snažím sa získať hodnotu z podrobností viewview do formview. Chcem nastaviť ID knihy ID / ISBN vo vloženom zobrazení formulára na hodnotu ID knihy / ISBN z zobrazenia podrobností.

Tu je ukážka môjho kódu:

<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
CellPadding="4" DataKeyNames="bookid" DataSourceID="detailsDataSource"
ForeColor="#333333" GridLines="None" Height="50px" Width="">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" />
<RowStyle BackColor="#EFF3FB" />
<FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<FooterTemplate>
<asp:GridView ID="GridView2" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" CellPadding="4"
DataKeyNames="reservationid" DataSourceID="reserveDataSource"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#EFF3FB" />
<Columns>
<asp:BoundField DataField="EmployeeID" HeaderText="Reserved by"
SortExpression="EmployeeID" />
<asp:BoundField DataField="reservedate" HeaderText="Reserved date"
SortExpression="reservedate" />
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:FormView ID="FormView1" runat="server" DataKeyNames="reservationid"
DataSourceID="reserveDataSource">
<EditItemTemplate>
reservationid:
<asp:Label ID="reservationidLabel1" runat="server"
Text="<%# Eval("reservationid") %>" />
<br />
bookid:
<asp:TextBox ID="bookidTextBox" runat="server" Text="<%# Bind("bookid") %>" />
<br />
EmployeeID:
<asp:TextBox ID="EmployeeIDTextBox" runat="server"
Text="<%# Bind("EmployeeID") %>" />
<br />
reservedate:
<asp:TextBox ID="reservedateTextBox" runat="server"
Text="<%# Bind("reservedate") %>" />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
&nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
Book ID/ISBN:
<asp:TextBox ID="bookidTextBox" runat="server"
Text="<%# Bind("bookid") %>"/>
<br />
Employee ID:
<asp:TextBox ID="EmployeeIDTextBox0" runat="server"
Text="<%# Bind("EmployeeID") %>" />
<br />
Reserve date:
<asp:TextBox ID="reservedateTextBox0" runat="server"
Text="<%# Bind("reservedate") %>" />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Reserve" />
&nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>

Snažím sa teda urobiť, keď používateľ klikne na tlačidlo Vložiť / Rezervovať knihu. ID knihy / ISBN je už nastavené na ID knihy / ISBN v režime vloženia formulára ako predvolené.

Akákoľvek pomoc by sa veľmi ocenila;)

Vopred ďakujem.

odpovede:

1 pre odpoveď č. 1

Môžete skúsiť skontrolovať DetailsView1.SelectedValue

<asp:TextBox ID="bookidTextBox" runat="server"
Text="<%# DetailsView1.SelectedValue %>"/>

edit: Teraz, ak chcete túto hodnotu previazať s funkciou Vložiť vášho DetailsView, nebude sa správať ako iná kontrola, pretože používate Bind method pre druhú kontrolu a poskytuje obojsmernú väzbu.

Teraz musíte túto hodnotu odovzdať vloženiu zla DetailsView ako keď priraďujeme hodnoty pomocou DetailsView1.SelectedValue ale nezaväzujú hodnotu.

Dúfam, že pochopíte túto teóriu.

protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
e.Values["bookid"] = ((TextBox)DetailsView1.FindControl("bookidTextBox")).Text;
}