2011-05-04 99 views
1

我试图从detailview中获取值到formview。我想将formview插入文本框中的Book ID/ISBN设置为detailsview中的Book ID/ISBN值。在插入模式下从DetailsView获取值到FormView文本框

这里是我的代码示例:

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

所以我想要做的是,当用户单击插入/储量书LinkBut​​ton的图书ID/ISBN已经被设置到Book ID /默认情况下,formview插入模式下的ISBN。

任何帮助将不胜感激;)

在此先感谢。

回答

1

你可以尝试检查DetailsView1.SelectedValue

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

编辑: 现在,如果你想该值绑定到你的DetailsView你插入功能,也不会表现得像其他的控制,因为你正在使用其他控件的Bind method,并提供双向绑定。

现在您需要将该值传递给插入的evet,就像我们使用DetailsView1.SelectedValue分配值但不绑定该值。

我希望你能理解这个理论。

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

嗨!感谢它的工作,但它没有绑定到记录。我如何绑定,以便用户只能输入保留日期? – Loupi 2011-05-04 06:05:47

+0

检查我的编辑部分。解决您目前的问题。 – 2011-05-04 06:15:55

+0

谢谢!我仍在研究它,我会试着看看我能否把它做好。 – Loupi 2011-05-04 06:50:42