2009-04-05 2 views
0

Я пытаюсь создать страницу, которая позволяет мне удалять кандидатов на работу из db. Моя страница работает нормально, но когда я нажимаю кнопку удаления, она перезагружает страницу, но не удаляет заявителя и его данные. Я использую linq.Удалить функцию, пропущенную в asp.net

Вот мой код

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ApplicantManagement.aspx.cs" Inherits="AdminPanel_ApplicantManagement" MasterPageFile="../AdminMaster.master" Title="ApplicantManagement" EnableEventValidation="false" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPagePlaceHolder1" Runat="Server"> 
<div class="content"> 
    <div class="titleMain">Library -> Applicant Management 
    </div> 
    <h1><span></span>Applicant Management</h1> 

    <div class="contentpage" > 
     <p>On this page you add, update, delete the Job applicants. 
     <b><asp:Label ID="ApplicantError" runat="server" Visible="false" /></b> 


     <asp:Label ID="ApplicantMsg" runat="server" Visible="false" /> 
     <br /> 
     <table> 
       <tr> 
       <td> 
       <asp:DropDownList ID="JobList" runat="server"> 
       </asp:DropDownList> 
      </td> 
      <td> 
       <asp:Button ID="select" runat="server" Text="Select" onclick="btn_Select_Click"/> 
      </td> 
      </tr> 
     </table>  

     <asp:ListView ID="lv_Applicant" runat="server" DataKeyNames="applicant_id" 
      EnableViewState="false" OnItemDeleting="lv_Applicant_ItemDeleting">    
     <LayoutTemplate> 
       <table width="550" class="table"> 
        <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
       </table> 
       <asp:DataPager ID="ApplicantPager" runat="server" PageSize="5"> 
        <Fields> 
         <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="true" ShowNextPageButton="false" /> 
         <asp:NumericPagerField /> 
         <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="false" ShowNextPageButton="true" ShowLastPageButton="false" /> 
        </Fields> 
       </asp:DataPager> 
      </LayoutTemplate> 
       <ItemTemplate> 
        <tr> 
         <td></td> 
         <td><asp:Label ID="ApplicantID" runat="server" Text='<%# Eval("applicant_id") %>' Visible="false" /> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Name</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantName" runat="server" Text='<%# Eval("applicant_name") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Address</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantAddress" runat="server" Text='<%# Eval("applicant_address") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Phone</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantPone" runat="server" Text='<%# Eval("applicant_phone") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Email</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantEmail" runat="server" Text='<%# Eval("applicant_email") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Education</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantEducation" runat="server" Text='<%# Eval("applicant_education") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Experience</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantExperience" runat="server" Text='<%# Eval("applicant_experience") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Interests</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantInterests" runat="server" Text='<%# Eval("applicant_interest") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <b>Other</b> 
         </td> 
         <td> 
          <asp:Label ID="ApplicantOther" runat="server" Text='<%# Eval("applicant_other") %>'/> 
         </td> 
        </tr> 
        <tr> 
         <td></td> 
         <td> 

          <asp:Button ID="ApplicantButton2" runat="server" CommandName="Delete" 
           Text="Delete" Width="50" /><br /><br /> 
         </td> 
        </tr> 
       </ItemTemplate>  
     </asp:ListView> 
    </p></div> 
</div>  
</asp:Content> 

И код позади:

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_ApplicantManagement : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      getApplicantListDDL(); 
     } 

    } 

    #region Getting the List 
    protected void getApplicantListDDL() 
    { 
     using (CareersDataContext applist = new CareersDataContext()) 
     { 
      var appList = from a in applist.team5_jobs 
          select new 
          { 
           a.job_id, 
           a.job_name 
          }; 
      JobList.DataSource = appList; 
      JobList.DataTextField = "job_name"; 
      JobList.DataValueField = "job_id"; 
      JobList.DataBind(); 
      JobList.Items[0].Selected = true; 
     } 
    } 
    #endregion 

    protected void lv_Applicant_ItemDeleting(object sender, ListViewDeleteEventArgs e) 
    { 
     int ID = Int32.Parse(lv_Applicant.DataKeys[e.ItemIndex].Value.ToString()); 
     using (CareersDataContext applist = new CareersDataContext()) 
     { 
      team5_job_applicant applicants = applist.team5_job_applicants.Single(al => al.applicant_id == ID); 
      applist.team5_job_applicants.DeleteOnSubmit(applicants); 
      applist.SubmitChanges();   
     } 

     getApplicantList(); 
    } 


    protected void getApplicantList() 
    { 
     string jobName = JobList.SelectedItem.ToString(); 
     using (CareersDataContext applist = new CareersDataContext()) 
     { 
      var applicantListVar = from apl in applist.team5_job_applicants 
          where (apl.job_name == jobName) 
          select new 
          { 
           job_name = apl.job_name, 
           applicant_id = apl.applicant_id, 
           applicant_name = apl.applicant_name, 
           applicant_address = apl.applicant_address, 
           applicant_phone = apl.applicant_phone, 
           applicant_email = apl.applicant_email, 
           applicant_education = apl.applicant_education, 
           applicant_experience = apl.applicant_experience, 
           applicant_interest = apl.applicant_interest, 
           applicant_other = apl.applicant_other 
          }; 

      lv_Applicant.DataSource = applicantListVar; 
      lv_Applicant.DataBind(); 
     } 
    } 

    protected void btn_Select_Click(object sender, EventArgs e) 
    { 
     getApplicantList(); 
    } 
} 

Благодаря ...

ответ

0

Это потому, что вы не подменой событие, потому что вы только заполнить список (и, следовательно, подключить ваше событие к кнопкам - я не вижу, где происходит ваш провод) на GET, а не на POST? Попробуйте удалить тест POSTBACK, чтобы убедиться, что это так.

+0

эй спасибо за ответ. , но не могли бы вы быть более конкретными. – 2009-04-05 12:31:04

+0

Я сам использую ретранслятор, это была просто идея. Вы пытались вставить событие OnClick в кнопку и привязать там? например: <жерех: Button ID = RunAt "ApplicantButton2" = "сервер" OnClick = "lv_Applicant_ItemDeleting" Имя_команды = "Удалить" Text = "Удалить" Width = "50" /> –

Смежные вопросы