views:

249

answers:

1

hi everyone

I have a strange problem. I am trying to update some fields using linq and it is not working. I tried to build the site and debug it which works and shows that the function is called. I also tried manually adding the values in the code behind file and that works too but somehow on runtime the form doesnt pass the values back from the text fields.

<%@ 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();
    }
}
+1  A: 

You forgot to check if it is a postback in Page_Load. You'll reload from the db on postback too...

if (!IsPostback())
{
  if (Request["book_id"] != null)
  {
    GetExistingBook();
  }
}
KristoferA - Huagati.com
you rock! thanks