2009-03-30 8 views
0

J'ai un problème étrange. J'essaie de mettre à jour certains champs en utilisant linq et cela ne fonctionne pas. J'ai essayé de construire le site et de le déboguer qui fonctionne et montre que la fonction est appelée. J'ai également essayé d'ajouter manuellement les valeurs dans le code derrière le fichier et cela fonctionne aussi, mais d'une manière ou d'une autre au moment de l'exécution, le formulaire ne renvoie pas les valeurs des champs de texte.Mise à jour dans asp.net avec linq ne fonctionne pas

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddEditBook1.aspx.cs" MasterPageFile="../AdminMaster.master" Inherits="AdminPanel_AddEditBook1" Title="Add or Edit Book Page"%> 

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPagePlaceHolder1" Runat="Server"> 
<div class="content"> 
    <div class="titleMain">Library -> Add or Edit Book Page 
    </div> 
    <h1><span></span>Add or Edit Book Page</h1> 

    <div class="contentpage" > 
     <p>On this page you can Add or Edit Book Page</p> 

     <asp:Label ID="AddEditBookMsg" runat="server" Visible="false" /> 

      <table width="650" class="table" cellspacing="15"> 
       <tr> 
        <td>Book ID</td> 
        <td><asp:Label ID="BookId" runat="server" /></td> 
       </tr> 
       <tr> 
        <td>Book name</td> 
        <td><asp:TextBox ID="BookName" runat="server" /></td> 
       </tr> 
       <tr> 
        <td>Author</td> 
        <td><asp:TextBox ID="BookAuthor" runat="server" Text="" /></td> 
       </tr> 

code:

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

public partial class AdminPanel_AddEditBook1 : System.Web.UI.Page 
{ 
    // book represents 3 tables 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     AddEditBookMsg.Visible = false; 
     if (Request["book_id"] != null) 
     { 
      GetExistingBook(); 
     } 
    } 

    public void GetExistingBook() 
    { 
     BooksDataContext book = new BooksDataContext(); 
     int book_id = Int32.Parse(Request["book_id"].ToString()); 
     var bookexist = book.books.Single(b => b.book_id == book_id); 
     var bookDDL = from c in book.categories 
         select c; 
     var bookexistdesc = book.bookdescs.Single(bds => bds.book_id == book_id); 
     if (bookexist.book_id == book_id) 
     { 
      BookName.Text = bookexist.book_name; 
      BookAuthor.Text = bookexist.book_author; 
      BookShortDesc.Text = bookexist.book_short_desc; 
      BookLongDesc.Text = bookexistdesc.book_long_desc; 
      BookImg.Text = bookexist.book_img; 
      BookSqu.Text = bookexist.book_squ; 
      BookArrived.Text = bookexist.book_arrived.ToString(); 
      BookQty.Text = bookexist.book_qty.ToString(); 

      if (!Page.IsPostBack) 
      { 
       CaID.DataSource = bookDDL; 
       CaID.DataTextField = "ca_name"; 
       CaID.DataValueField = "ca_id"; 
       CaID.DataBind(); 
      } 
     } 
    } 

    protected void update_Click(object sender, EventArgs e) 
    { 
     BooksDataContext book = new BooksDataContext(); 

     int book_id = Int32.Parse(Request["book_id"].ToString()); 
     book bookexist2 = book.books.Single(b1 => b1.book_id == book_id); 
     bookdesc bookexistdesc2 = book.bookdescs.Single(bds1 => bds1.book_id == book_id); 


     bookexist2.book_name = BookName.Text; 
     bookexist2.book_author = BookAuthor.Text.ToString(); 
     bookexist2.book_short_desc = BookShortDesc.Text; 

     bookexist2.book_img = BookImg.Text; 
     bookexist2.book_squ = BookSqu.Text; 
     bookexist2.book_arrived = DateTime.Parse(BookArrived.Text); 
     bookexist2.book_qty = Int32.Parse(BookQty.Text); 

     bookexistdesc2.book_long_desc = BookLongDesc.Text; 
     book.SubmitChanges(); 
    } 
} 

Répondre

1

Vous avez oublié de vérifier si elle est un postback dans Page_Load. Vous rechargerez à partir de la base de données sur le postback aussi ...

if (!IsPostback()) 
{ 
    if (Request["book_id"] != null) 
    { 
    GetExistingBook(); 
    } 
} 
+0

vous rock! Merci –

Questions connexes