如何使用实体框架4.0在asp.net Web表单中的DetailsView中更新

时间:2014-07-05 10:41:42

标签: c# asp.net .net entity-framework entity-framework-4

我已经创建了一个Web表单“Product.aspx”,产品将被插入到数据库中。

我使用了实体框架4.0,我正在使用DetailsView来插入数据

    <asp:DetailsView ID="DV_Product" runat="server" Height="70px" Width="60%" 
    AutoGenerateRows="False" DataKeyNames="ProductId" DataSourceID="EDS_Product" 
    DefaultMode="Insert" OnItemInserting="DVProduct_ItemInserting">
    <Fields>
        <asp:BoundField DataField="Product1" HeaderText="Product" SortExpression="Product1" ControlStyle-Width="250"/>
        <asp:TemplateField HeaderText="Category">
            <InsertItemTemplate>
                <asp:EntityDataSource ID="EDS_Category" runat="server" ConnectionString="name=SpunkKraftEntities1" 
                    DefaultContainerName="SpunkKraftEntities1" EnableDelete="True" 
                    EnableFlattening="False"  EntitySetName="Categories" EntityTypeFilter="Category">
                </asp:EntityDataSource>
                <asp:DropDownList ID="DD_Category" runat="server" DataSourceID="EDS_Category" Width="250"
                    DataTextField="Category1" DataValueField="CategoryId" OnInit="DD_Category_Init">
                </asp:DropDownList>
            </InsertItemTemplate>
        </asp:TemplateField>

        <asp:TemplateField HeaderText="Description" >
            <InsertItemTemplate>
                <asp:TextBox ID="txt_Description" runat="server" TextMode="MultiLine" OnInit="txt_Description_Init" Width="250">
                </asp:TextBox>
            </InsertItemTemplate>
        </asp:TemplateField>

        <asp:BoundField DataField="Unit Price" HeaderText="Unit Price"  />
        <asp:TemplateField HeaderText="Upload Image">
            <InsertItemTemplate>
                <asp:FileUpload ID="fu_image" runat="server" OnInit="fu_image_Init"/>
            </InsertItemTemplate>
         </asp:TemplateField>
        <asp:CommandField ShowInsertButton="true" />                        

    </Fields>
</asp:DetailsView>

enter image description here

我有另一个页面“ManageProduct.aspx”,我使用gridview显示产品列表

enter image description here

我想在DetailsView中编辑记录。我可以想象当我点击“选择”或“编辑”然后它应该重定向到“Product.aspx?ProductId = x”并填写DetailsView中的产品详细信息。我想问的是如何重定向产品ID并重定向到“Product.aspx”我如何填写详细信息并更新?

1 个答案:

答案 0 :(得分:0)

尝试这种方式,此处我们将您的产品ID视为产品名称。

在RowEditing事件上,请执行此操作

Response.Redirect("Products.aspx?Id="+GridView1.SelectedRow.Cells[2].Text);

在Products.aspx的page_load上提到这样,

if(Request[Id]!=null)
{
    string demo = Request[Id].ToString();
    SqlConnection con = new SqlConnection("Your connection String");
    SqlCommand cmd = new SqlCommand("Select * from Your table where name = '"+demo+"'")
    SqlDataReader dr = cmd.ExecuteReader();
    while(dr.Read())
    {
       DetailsView1.Rows[0].Cells[2].Text = dr.GetString(0);//Your Product goes here
       // Proceed the same for your remaining entries 
    }
}

希望你有一些想法可以进一步发展。如果我的回答有任何混淆。请告诉我。