2012-05-17 4 views
1

Firefox가 현재 저에게 약간의 문제를 일으키고 있습니다.목록 상자가 Firefox에 채워지지 않는 경우

두 개의 목록 상자가 있는데 하나는 페이지가로드 될 때 채워지고 다른 하나는 첫 번째 항목을 선택한 다음보기 단추를 클릭 할 때 채워집니다. 내가 겪고있는 문제는 두 번째 목록 상자가 단지 두 번째로 채워진 다음 모든 것이 삭제된다는 것입니다. 이 기능은이와

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.Security; 
using System.Data; 
using System.Data.SqlClient; 
using DAL; 

namespace ACESAdmin2.AcesSetup 
{ 
public partial class storefront : System.Web.UI.Page 
{ 
    private string selectedCustomer 
    { 
     get { return Session["selectedCustomer"] != null ? (string)Session["selectedCustomer"] : string.Empty; } 
     set { Session["selectedCustomer"] = value; } 
    } 
    private string selectedCatalog 
    { 
     get { return Session["selectedCatalog"] != null ? (string)Session["selectedCatalog"] : string.Empty; } 
     set { Session["selectedCatalog"] = value; } 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
      if (!IsPostBack) 
     { 
      LoadPage(); 
     } 
    } 

    private void LoadPage() 
    { 

     initControls(); 

     #region role setting 
     try 
     { 
      //check user role to determine editing rights 
      string usersRole = Roles.GetRolesForUser(Membership.GetUser().UserName)[0]; 
      MembershipUser user = Membership.GetUser(); 
      switch (usersRole) 
      { 
       case "BasicUser": 
        AlignTextNoneRadio.Enabled = false; 
        AlignTextLeftRadio.Enabled = false; 
        AlignRightRadio.Enabled = false; 
        AlignCenterRadio.Enabled = false; 
        headerText.Enabled = false; 
        returnPolicy.Enabled = false; 
        welcomeMessageTextBox.Enabled = false; 
        homeText.Enabled = false; 
        homeLink.Enabled = false; 
        updateStoreButton.Enabled = false; 
        break; 

       case "Customer": 
        homeLink.Enabled = false; 
        homeText.Enabled = false; 
        break; 

       case "SalesRep": 
       case "Admin": 
       case "SuperAdmin": 
        break; 
       default: 
        break; 
      } 
     } 

     catch (NullReferenceException error) 
     { 
      string message; 
      message = error.ToString(); 
      Response.Redirect("../error.aspx"); 
     } 
     #endregion 

     #region Accordion Pane Settings 

     if (ViewState["SelectedAccordionIndex"] == null) 
     { 
      MyAccordion.SelectedIndex = -1; 
     } 
     else 
     { 
      MyAccordion.SelectedIndex = (int)ViewState["SelectedAccordionIndex"]; 
     } 
     #endregion 
    } 
    private void initControls() 
    { 
     //Viewable to all 
     #region customer label 
     if (selectedCustomer != null) 
     { 
      string customerName = DAL.Util.getCustomerName().ToString(); 
      if (customerName != null || customerName != String.Empty) 
      { 
       lblCustomer.Text = "Customer: <font color=maroon>" + customerName + "</font>"; 
       lblCustomer.Visible = true; 
      } 
      else 
      { 
       lblCustomer.Text = "Customer: <font color=maroon>" + selectedCustomer.ToString() + "</font>"; 
       lblCustomer.Visible = true; 
      } 
     } 
     #endregion 

     //Edit Store Front 
     #region Populate Fields 

     #region headerAlign 

     string headerAlign = DAL.Util.getHeaderAlign().ToString(); 
     switch (headerAlign) 
     { 
      case "left": 
       AlignTextLeftRadio.Checked = true; 
       break; 
      case "center": 
       AlignCenterRadio.Checked = true; 
       break; 
      case "right": 
       AlignRightRadio.Checked = true; 
       break; 
      default: 
       AlignTextNoneRadio.Checked = true; 
       break; 
     } 
     #endregion 

     welcomeMessageTextBox.Text = DAL.Util.getWelcome().ToString(); 
     headerText.Text = DAL.Util.getHeaderText().ToString(); 
     returnPolicy.Text = DAL.Util.getReturn().ToString(); 
     homeLink.Text = DAL.Util.getHomeLink().ToString(); 
     homeText.Text = DAL.Util.getHomeText().ToString(); 
     #endregion 

     //BJIT Setup 
     #region popultae fields 
     ddlSelectVendor.DataSource = DAL.Util.getVendors(); 
     ddlSelectVendor.DataBind(); 
     listCatalogs.DataSource = DAL.Util.getCatalogs(); 
     listCatalogs.DataBind(); 
     #endregion 

    } 

    protected void returnButton_Click(object sender, EventArgs e) 
    { 
     //Takes user back to main admin page 
     Response.Redirect("../Admin/mainAdmin.aspx"); 
    } 

    protected void dropdownlist_SelectedInexChange(object sender, EventArgs e) 
    { 
     ViewState["SelectedAccordionIndex"] = MyAccordion.SelectedIndex; 
    } 

    protected void updateStoreButton_Click(object sender, EventArgs e) 
    { 
     switch(MyAccordion.SelectedIndex) 
     { 
      case 0: 
      #region Header Value 
      string selectedHeaderAlign = null; 
      foreach (Control control in this.RadioPanel.Controls) 
      { 
       if (control is RadioButton) 
       { 
        RadioButton radio = control as RadioButton; 
        if (radio.Checked) 
        { 
         selectedHeaderAlign = radio.Text.ToLower(); 
        } 
       } 
      } 
      #endregion 
      //updates customer information in the table 
      string sqlSf = "Update Store SET HeaderAlign = @HeaderAlign, [email protected], [email protected], [email protected], [email protected], [email protected]" 
       + " WHERE CustomerID='" + HttpContext.Current.Session["selectedCustomer"].ToString() + "'"; 
      //setting parameters 
      #region Parameter Values 
      AdoUtil.ACESSQLParameterCollection parameters = new AdoUtil.ACESSQLParameterCollection(); 
      AdoUtil.ACESSQLParameter param = new AdoUtil.ACESSQLParameter(); 



      param.ParamName = "@HeaderAlign"; 
      param.ParamValue = selectedHeaderAlign.ToString(); 
      param.ParamDBType = SqlDbType.VarChar; 
      parameters.Add(param); 

      param = new AdoUtil.ACESSQLParameter(); 
      param.ParamName = "@HeaderText"; 
      param.ParamValue = headerText.Text.ToString(); 
      param.ParamDBType = SqlDbType.VarChar; 
      parameters.Add(param); 

      param = new AdoUtil.ACESSQLParameter(); 
      param.ParamName = "@ReturnPolicy"; 
      param.ParamValue = returnPolicy.Text.ToString(); 
      param.ParamDBType = SqlDbType.VarChar; 
      parameters.Add(param); 

      param = new AdoUtil.ACESSQLParameter(); 
      param.ParamName = "@WelcomeMessage"; 
      param.ParamValue = welcomeMessageTextBox.Text.ToString(); 
      param.ParamDBType = SqlDbType.VarChar; 
      parameters.Add(param); 

      param = new AdoUtil.ACESSQLParameter(); 
      param.ParamName = "@HomeTextLink"; 
      param.ParamValue = homeText.Text.ToString(); 
      param.ParamDBType = SqlDbType.VarChar; 
      parameters.Add(param); 

      param = new AdoUtil.ACESSQLParameter(); 
      param.ParamName = "@HomeLink"; 
      param.ParamValue = homeLink.Text.ToString(); 
      param.ParamDBType = SqlDbType.VarChar; 
      parameters.Add(param); 
      #endregion 
      AdoUtil.ExecuteNonQuery(sqlSf, parameters); 
      break; 
      case 1: 
       //BJIT Updates 
      string sqlBJIT = "Update"; 
      break; 

      default: 
      break; 

     } 
     MyAccordion.SelectedIndex = -1; 
    } 

    #region BJIT Control Events 
    //BJIT Button 
    protected void btnAddCustomer_Click(object sender, EventArgs e) 
    { 
     if (listItems.SelectedIndex != -1) 
     { 
      ArrayList removeArr = new ArrayList(); 

      listItemProfiles.SelectedIndex = -1; 

      //Copy selected items to listItemProfiles 
      foreach (ListItem li in listItems.Items) 
      { 
       if (li.Selected) 
       { 
        listItemProfiles.Items.Add(li); 
        removeArr.Add(li); 
       } 
      } 

      //Remove the selected items from listItems 
      foreach (ListItem li in removeArr) 
      { 
       listItems.Items.Remove(li); 
      } 
      Util.WebFunctions.SortListBox(listItemProfiles); 
     } 
    } 

    //BJIT Button 
    protected void btnRemoveCustomer_Click(object sender, EventArgs e) 
    { 
     if (listItemProfiles.SelectedIndex != -1) 
     { 
      ArrayList removeArr = new ArrayList(); 
      listItems.SelectedIndex = -1; 

      //Copy selected items to listItems 
      foreach (ListItem li in listItemProfiles.Items) 
      { 
       if (li.Selected) 
       { 
        li.Selected = false; 
        listItems.Items.Add(li); 
        removeArr.Add(li); 
       } 
      } 

      //Remove the selected items from listItemProfiles 
      foreach (ListItem li in removeArr) 
      { 
       listItemProfiles.Items.Remove(li); 
      } 
      Util.WebFunctions.SortListBox(listItems); 
     } 
    } 

    //BJIT Button 
    protected void viewBtn_Click(object sender, EventArgs e) 
    { 
     if (listCatalogs.SelectedItem != null) 
     { 
      listItemCatalogs.DataSource = DAL.Util.getCatalogProfile(listCatalogs.SelectedValue.ToString()); 
      listItemCatalogs.DataBind();     
     } 
    } 

    //BJIT Button 
    protected void editBtn_Click(object sender, EventArgs e) 
    { 
     if (listCatalogs.SelectedItem != null) 
     { 
      #region controls visible 
      lblVendor.Visible = true; 
      ddlSelectVendor.Visible = true; 
      lblItemProfile.Visible = true; 
      lblItems.Visible = true; 
      listItems.Visible = true; 
      listItemProfiles.Visible = true; 
      btnAddCustomer.Visible = true; 
      btnRemoveCustomer.Visible = true; 

      lblItemsCatalog.Visible = false; 
      listItemCatalogs.Visible = false; 
      //listItemCatalogs.Items.Clear(); 
      #endregion 

      #region disable controls 
      //listCatalogs.Enabled = false; 
      listItemCatalogs.Enabled = false; 
      editBtn.Enabled = false; 
      viewBtn.Enabled = false; 
      #endregion 

      listItemProfiles.DataSource = DAL.Util.getCatalogProfile(listCatalogs.SelectedValue.ToString()); 
      listItemProfiles.DataBind(); 

     } 
    } 

    //BJIT Drop Down List 
    protected void ddlSelectVendor_Changed(object sender, EventArgs e) 
    { 
     listItems.DataSource = DAL.Util.getVenorItems(ddlSelectVendor.SelectedItem.ToString()); 
     listItems.DataBind(); 
    } 
    #endregion 
    } 
} 

이전에 설명하지 않은 조금 더 많은 기능을이이 파이어 폭스는 데이터를 유지하지 않습니다와 함께 .. 내가 테스트 한 다른 모든 브라우저 ... IE, 크롬, 사파리에서 작동/editBtn_Click이 시작될 때 컨트롤을 계속 표시합니다.

다시 말해서 내가 정리할 수있는 것이 있으면 다시 말로 표현할 수 있도록 최선을 다할 것입니다.

감사합니다.

+0

초 단위로 채워지는 경우 클라이언트 측 JavaScript에서 값을 삭제할 가능성이 있습니다. –

+0

Dave는 먼저 확인해야 할 사항에 대해 좋은 의견을 제시합니다. 또한 ASP.NET Ajax를 사용하여 다른 콜백을 다시 사용하고 있습니까/페이지에서 페이지의 다른 부분 (예 : Page_Load 이벤트)의 코드를 지우는 코드가 있습니까? 그렇게한다면, 중단 점을 설정하거나 그 안에 디버그 라인을 넣어 나중에 실행되지 않도록 할 수 있습니다. –

+0

정확히 page_load 이벤트에 자바 스크립트 나 코드가 있습니까? 다시 게시하는 경우로드에 아무것도하고 있습니까? 여기에 완전한 코드 숨김을 배치 할 수 있습니까? 감사합니다 – hjgraca

답변

0

정확히 무슨 일이 일어 났는지는 알 수 없지만 지금은 작동 중입니다. .cs 페이지를 다시 작성하고 전체 사이트를 다시 컴파일하면 모든 것이 작동합니다. 또한 모든 브라우저의 캐시를 지 웁니다.

관련 문제